نوشته شده توسط
Hossis
شما با این کامپوننت کار کردید؟؟
من تونستم با این کامپوننت، مشخصات فایل تصویری روبخونم ، ولی هنگام ذخیره، خطا می ده
خطا این هست که فایل توسط برنامه دیگری باز است
ظاهرا فایل قبلی رو نبسته یا این که چون تصویر رو توسط پیکچر باکس نمایش می دم، این خطا رو می ده
نه کار نکردم!..
بله باید پیکچرباکستونو نابود کنید:
pictureBox1.Image.Dispose();
ولی جهت اطلاع بگم که این کتابخونه فقط برای فایل های صوتی تصویری استفاده میشه من فکر نکنم برای عکس نتیجه خوبی بگیری ازش
ولی خب این رو امتحان کن خوبه فکرکنم!!
var jpeg = new JpegMetadataAdapter(@"C:\Users\Daniyal\Desktop\tes t.jpg");
jpeg.Metadata.Comment = "نمونه برای تست";
jpeg.Metadata.Title = "نمونه برای تست";
jpeg.Metadata.Subject = "نمونه برای تست";
jpeg.Save(); // Saves the jpeg in-place
jpeg.SaveAs(@"C:\test"); // Saves with a new path
public class JpegMetadataAdapter {
private readonly string path;
private BitmapFrame frame;
public readonly BitmapMetadata Metadata;
public JpegMetadataAdapter(string path)
{
this.path = path;
frame = getBitmapFrame(path);
Metadata = (BitmapMetadata)frame.Metadata.Clone();
}
public void Save()
{
SaveAs(path);
}
public void SaveAs(string path)
{
JpegBitmapEncoder encoder = new JpegBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(frame, frame.Thumbnail, Metadata, frame.ColorContexts));
using (Stream stream = File.Open(path, FileMode.Create, FileAccess.ReadWrite))
{
encoder.Save(stream);
}
}
private BitmapFrame getBitmapFrame(string path)
{
BitmapDecoder decoder = null;
using (Stream stream = File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
decoder = new JpegBitmapDecoder(stream, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.OnLoad);
}
return decoder.Frames[0];
}
}
منبع: https://stackoverflow.com/questions/...-using-c-sharp