HEIC (คอนเทนเนอร์อิมเมจประสิทธิภาพสูง) เป็นคอนเทนเนอร์ที่สามารถมีอิมเมจ HEIF รูปแบบอิมเมจประสิทธิภาพสูง XMP เป็นมาตรฐานข้อมูลเมตาที่ใช้ XML ซึ่งสามารถจัดเก็บคุณสมบัติข้อมูลเมตาเป็นคู่ชื่อ/ค่า อย่างไรก็ตาม EXIF (Exchangeable Image File Format) เป็นมาตรฐานและกำหนดวิธีจัดเก็บคุณสมบัติเมทาดาทาในรูปแบบรูปภาพและเสียงที่พบมากที่สุด ในบทความนี้ เราจะเรียนรู้วิธีแยก อัปเดต และลบข้อมูลเมตา XMP และ EXIP ของอิมเมจ HEIF/HEIC โดยใช้ C# ภายในแอปพลิเคชัน .NET
หัวข้อต่อไปนี้ครอบคลุมด้านล่าง:
- .NET API สำหรับ EXIF, XMP ข้อมูลเมตา
- อ่านข้อมูล EXIF ของภาพ HEIC/HEIF
- อ่านข้อมูล XMP ของภาพ HEIC/HEIF
.NET API สำหรับข้อมูลเมตา XMP และ EXIF
GroupDocs.Metadata ให้บริการ .NET API เพื่อให้การจัดการข้อมูลเมตาโดยอัตโนมัติภายในแอปพลิเคชัน .NET API อนุญาตให้อ่าน อัปเดต เพิ่ม ล้าง/ลบ และสำรวจข้อมูลเมตาสำหรับไฟล์หลายรูปแบบ API รองรับมาตรฐานข้อมูลเมตาต่างๆ เช่น EXIF, IPTC และ XMP คุณยังสามารถไปที่เอกสารประกอบเพื่อดูรายการ [รูปแบบไฟล์ที่รองรับสำหรับการจัดการข้อมูลเมตา] ทั้งหมด 5
คุณสามารถดาวน์โหลดโปรแกรมติดตั้ง DLLs หรือ MSI ได้จาก ส่วนการดาวน์โหลด หรือติดตั้ง API ในแอปพลิเคชัน .NET ของคุณผ่านทาง NuGet
PM> Install-Package GroupDocs.Metadata
อ่านข้อมูล EXIF ของรูปภาพ HEIC / HEIF ใน C#
ต่อไปนี้เป็นขั้นตอนในการอ่านและแยกข้อมูล EXIF ของภาพ HEIC และ HEIF
- โหลดภาพ HEIF หรือ HEIC โดยใช้คลาส Metadata
- รับรูทแพ็คเกจ
- ดึงแพ็คเกจ EXIF จากแพ็คเกจรูท
- สำรวจคุณสมบัติของข้อมูล EXIF
- นอกจากนี้ คุณยังสามารถรับ IFD (Image File Directory) และข้อมูล GPS ได้จากแพ็คเกจ EXIF
รหัสต่อไปนี้แสดงวิธีรับข้อมูล EXIF, ข้อมูลเมตา IFD และ GPS ของภาพ HEIC โดยใช้ C#
// อ่าน EXIF, EXIF IFD, EXIF GPS Package ของภาพ HEIF / HEIC ใน C#
using (Metadata metadata = new Metadata(@"image.heic"))
{
IExif root = metadata.GetRootPackage() as IExif;
if (root != null && root.ExifPackage != null)
{
const string pattern = "{0} = {1}";
foreach (TiffTag tag in root.ExifPackage.ToList())
{
Console.WriteLine(pattern, tag.TagID, tag.Value);
}
foreach (TiffTag tag in root.ExifPackage.ExifIfdPackage.ToList())
{
Console.WriteLine(pattern, tag.TagID, tag.Value);
}
foreach (TiffTag tag in root.ExifPackage.GpsPackage.ToList())
{
Console.WriteLine(pattern, tag.TagID, tag.Value);
}
}
}
อ่านข้อมูล XMP ของรูปภาพ HEIC / HEIF ใน C#
ขั้นตอนต่อไปนี้อ่านข้อมูลเมตา XMP ของภาพ HEIC หรือ HEIF
- โหลดภาพ HEIF หรือ HEIC โดยใช้คลาส Metadata
- รับรูทแพ็กเกจโดยใช้เมธอด getRootPackage
- จากรูทแพ็กเกจ คุณจะได้รับข้อมูลพื้นฐานของ XMP
- นอกจากนี้ คุณสามารถรับข้อมูล DCMI Dublin Core
- นอกจากนี้ คุณสามารถรับข้อมูล Photoshop โดยใช้วิธี getPhotoshop
ซอร์สโค้ดต่อไปนี้แสดงวิธีรับข้อมูลพื้นฐาน XMP, DCMI และ Photoshop ใน C#
// แยกข้อมูล XMP Basic, DublinCore และ Photoshop ของภาพ HEIC และ HEIF ใน C#
using (Metadata metadata = new Metadata(@"xmp.heic"))
{
IXmp root = metadata.GetRootPackage() as IXmp;
if (root != null && root.XmpPackage != null)
{
if (root.XmpPackage.Schemes.XmpBasic != null)
{
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.CreatorTool);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.CreateDate);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.ModifyDate);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.Label);
Console.WriteLine(root.XmpPackage.Schemes.XmpBasic.Nickname);
// ...
}
if (root.XmpPackage.Schemes.DublinCore != null)
{
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Format);
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Coverage);
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Identifier);
Console.WriteLine(root.XmpPackage.Schemes.DublinCore.Source);
// ...
}
if (root.XmpPackage.Schemes.Photoshop != null)
{
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.ColorMode);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.IccProfile);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.Country);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.City);
Console.WriteLine(root.XmpPackage.Schemes.Photoshop.DateCreated);
// ...
}
// ...
}
}
ในทำนองเดียวกัน มีวิธี setter มากมายในการตั้งค่าหรืออัพเดตคุณสมบัติ XMP ที่แตกต่างกัน คุณยังสามารถ ระบุคู่คีย์-ค่าของคุณเองเพื่อตั้งค่าคุณสมบัติแพ็คเกจ XMP แบบกำหนดเองได้
ลบข้อมูลเมตา EXIF และ XMP ของรูปภาพ HEIC / HEIF ใน C#
คุณสามารถตั้งค่าแพ็คเกจ EXIF หรือแพ็คเกจ XMP เป็น null เพื่อลบคุณสมบัติข้อมูลเมตาทั้งหมด
รหัสต่อไปนี้จะลบข้อมูล EXIF ของภาพ HEIC ใน C#
using (Metadata metadata = new Metadata("image.heic"))
{
IExif root = metadata.GetRootPackage() as IExif;
if (root != null)
{
root.ExifPackage = null;
metadata.Save("no-exif-image.heic");
}
}
รหัสต่อไปนี้จะลบข้อมูล XMP ของอิมเมจ HEIC ใน C#
using (Metadata metadata = new Metadata("image.heic"))
{
IXmp root = metadata.GetRootPackage() as IXmp;
if (root != null)
{
root.XmpPackage = null;
metadata.Save("no-xmp-image.heic");
}
}
รับใบอนุญาต API ฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี เพื่อใช้ API โดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
โดยสรุป เราได้เรียนรู้วิธีแยก อัปเดต ลบข้อมูลเมตา EXIF และ XMP ออกจากอิมเมจ HEIF/HEIC ใน C# นอกจากนี้ คุณได้เห็นวิธีการรับข้อมูล IFD และ GPS จากภาพเหล่านี้ ตอนนี้คุณสามารถรับข้อมูลนี้ได้อย่างง่ายดายและเริ่มสร้างแอปพลิเคชันของคุณเอง เช่น GroupDocs.Metadata App Product Family เพื่อทำให้ข้อมูลเมตาดาต้าเป็นแบบอัตโนมัติ
สำหรับข้อมูลเพิ่มเติม ตัวเลือก และตัวอย่าง คุณสามารถไปที่ documentation และ GitHub repository สำหรับคำถามเพิ่มเติม โปรดติดต่อเราที่การสนับสนุน ฟอรัม