HEIC (คอนเทนเนอร์อิมเมจประสิทธิภาพสูง) เป็นคอนเทนเนอร์ที่สามารถมีอิมเมจ HEIF รูปแบบอิมเมจประสิทธิภาพสูง XMP เป็นมาตรฐานข้อมูลเมตาที่ใช้ XML ซึ่งสามารถจัดเก็บคุณสมบัติข้อมูลเมตาเป็นคู่ชื่อ/ค่า อย่างไรก็ตาม EXIF (Exchangeable Image File Format) เป็นมาตรฐานและกำหนดวิธีจัดเก็บคุณสมบัติเมทาดาทาในรูปแบบรูปภาพและเสียงที่พบมากที่สุด ในบทความนี้ เราจะเรียนรู้วิธีแยก อัปเดต และลบข้อมูลเมตา XMP และ EXIP ของอิมเมจ HEIF/HEIC โดยใช้ C# ภายในแอปพลิเคชัน .NET

หัวข้อต่อไปนี้ครอบคลุมด้านล่าง:

.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 สำหรับคำถามเพิ่มเติม โปรดติดต่อเราที่การสนับสนุน ฟอรัม

ดูสิ่งนี้ด้วย