บันทึกบิตแมปเป็น png ด้วยข้อมูล medata wpf c # [ซ้ำ]

Dec 30 2020

ฉันต้องการบันทึกบิตแมปเป็น jpg ด้วย medata เช่น copyright ใน wpf c #

         var  handle = BitmapImage2Bitmap(currentimage).GetHbitmap();



        System.Drawing.Image img = System.Drawing.Image.FromHbitmap(handle);
        System.Drawing.Imaging.PropertyItem prop = img.PropertyItems[0];
        SetProperty(ref prop, 33432, "Copyright");
        img.SetPropertyItem(prop);

        


        img.Save(@"C:\images\test.jpg");

ฉันลองใช้โค้ดด้านบนแล้ว แต่มันบอกว่าดัชนีไม่อยู่ในพื้นที่อาร์เรย์

คำตอบ

Charlieface Dec 30 2020 at 09:52
var prop = img.GetPropertyItem(0x503B);
prop.Value = Encoding.Ascii.GetBytes("copyright name");
prop.Len = prop.Value.Length;
img.SetPropertyItem(prop);

ค่า 0x503B มาจากที่นี่: PropertyItem.Id Property