تصاویر و فایل های صوتی، مشخصاتی علاوه بر مشخصات عمومی فایل ها دارند
مثلا : تگ ها (برچسب ها)، موضوع، پدید آور و ...
چطور میشه به این خصوصیات دسترسی داشت و آنها را تغییر داد؟؟
تصویر زیر، یک نمونه از ویژگی های یک عکس است:
ضمیمه 151995
Printable View
تصاویر و فایل های صوتی، مشخصاتی علاوه بر مشخصات عمومی فایل ها دارند
مثلا : تگ ها (برچسب ها)، موضوع، پدید آور و ...
چطور میشه به این خصوصیات دسترسی داشت و آنها را تغییر داد؟؟
تصویر زیر، یک نمونه از ویژگی های یک عکس است:
ضمیمه 151995
شما با این کامپوننت کار کردید؟؟
من تونستم با این کامپوننت، مشخصات فایل تصویری روبخونم ، ولی هنگام ذخیره، خطا می ده
خطا این هست که فایل توسط برنامه دیگری باز است
ظاهرا فایل قبلی رو نبسته یا این که چون تصویر رو توسط پیکچر باکس نمایش می دم، این خطا رو می ده
نه کار نکردم!..
بله باید پیکچرباکستونو نابود کنید:
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