Exifinterface

อ่านและเขียนแท็ก EXIF ของไฟล์รูปภาพ
อัปเดตล่าสุด รุ่นที่เสถียร รุ่นที่อาจได้รับการเผยแพร่ รุ่นเบต้า รุ่นอัลฟ่า
3 ธันวาคม 2025 1.4.2 - - -

การประกาศทรัพยากร Dependency

หากต้องการเพิ่มทรัพยากร Dependency ใน Exifinterface คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google

เพิ่มทรัพยากร Dependency สำหรับอาร์ติแฟกต์ที่ต้องการในไฟล์ build.gradle สำหรับ แอปหรือโมดูล

ดึงดูด

dependencies {
    implementation "androidx.exifinterface:exifinterface:1.4.2"
}

Kotlin

dependencies {
    implementation("androidx.exifinterface:exifinterface:1.4.2")
}

ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์

ความคิดเห็น

ความคิดเห็นของคุณช่วยให้ Jetpack ทำงานได้ดีขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว

สร้างปัญหาใหม่

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา

เวอร์ชัน 1.4

เวอร์ชัน 1.4.2

3 ธันวาคม 2025

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.4.2 เวอร์ชัน 1.4.2 มีการเปลี่ยนแปลงเหล่านี้

การแก้ไขข้อบกพร่อง

  • รองรับการแยกวิเคราะห์ JPEG ที่มีไบต์ 0xFF เพิ่มเติม (ที่อนุญาต) ก่อนเครื่องหมาย

เวอร์ชัน 1.4.1

23 เมษายน 2025

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.4.1 เวอร์ชัน 1.4.1 มีการคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขข้อบกพร่องที่การส่งค่า Null ไปยัง setAttribute สำหรับ TAG_XMP จะทำให้เกิดข้อยกเว้น

เวอร์ชัน 1.4.0

26 กุมภาพันธ์ 2025

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.4.0 เวอร์ชัน 1.4.0 มีการคอมมิตเหล่านี้

เวอร์ชัน 1.4.0-rc01

29 มกราคม 2025

androidx.exifinterface:exifinterface:1.4.0-rc01 เปิดตัวโดยไม่มีการเปลี่ยนแปลงใดๆ ตั้งแต่เวอร์ชันเบต้า 01 เวอร์ชัน 1.4.0-rc01 มีการเปลี่ยนแปลงเหล่านี้

เวอร์ชัน 1.4.0-beta01

15 มกราคม 2025

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.4.0-beta01 เวอร์ชัน 1.4.0-beta01 มีการเปลี่ยนแปลงเหล่านี้

การเปลี่ยนแปลง API

  • อัปเดตการจัดการ XMP ของ HEIC เพื่อให้ใช้ข้อมูล XMP จากส่วนที่แยกต่างหากในไฟล์แทนแท็ก 700 ในข้อมูล Exif

การแก้ไขข้อบกพร่อง

  • แก้ไขเมธอด ExifInterface.getThumbnail*() ให้ทำงานได้อย่างถูกต้องหลังจากเรียกใช้ saveAttributes() (ก่อนหน้านี้การเรียกใช้จะสำเร็จ แต่ผลลัพธ์จะไม่ถูกต้อง/ไม่ได้กำหนดไว้)
  • แก้ไขการจัดการ XMP ของ PNG เพื่ออ่านและเขียนก้อน XMP ของ iTXt แยกต่างหากแทนแท็ก 700 ภายในก้อน eXIf
  • แก้ไขWebPความเสียหายของรูปภาพเมื่อจัดการไฟล์รูปภาพที่มีข้อมูลที่ไม่ใช่ WebP ต่อท้าย (b/385766064)

เวอร์ชัน 1.4.0-alpha01

13 พฤศจิกายน 2024

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.4.0-alpha01 เวอร์ชัน 1.4.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการรองรับการอ่านข้อมูล XMP จากรูปภาพ HEIF
  • เพิ่มการรองรับการอ่าน Exif และ XMP จากรูปภาพ AVIF

การเปลี่ยนแปลง API

  • ระบุว่าพารามิเตอร์ location สำหรับ setGpsInfo คือ @Nullable และการส่ง null จะส่งผลให้ไม่มีการดำเนินการ (If924c, b/236484611)

การแก้ไขข้อบกพร่อง

  • แยกวิเคราะห์ต่อหลังจากพบออฟเซ็ต IFD ที่ไม่ถูกต้อง (b/264729367)
  • จัดการรูปภาพ WebP ที่มีเครื่องหมาย APP1 ของ JPEG อยู่ก่อนข้อมูล Exif อย่างไม่ถูกต้อง (b/281638358)
  • ตรวจสอบว่าการเปลี่ยนแปลง XMP ใน JPEG ที่มีกลุ่ม XMP แยกต่างหากจะจัดเก็บไว้ในกลุ่ม XMP แยกต่างหากเดียวกันโดย saveAttributes() แทนที่จะเขียนลงในแท็ก TIFF/Exif 700 ซึ่งข้อกำหนด XMP ไม่รองรับและเครื่องมือหลายอย่างจะไม่พบ
  • หลีกเลี่ยงการทำซ้ำข้อมูล XMP จากกลุ่มที่แยกต่างหากไปยังไดเรกทอรีตัวอย่าง TIFF เมื่อบันทึก (b/309843390)
  • ปรับปรุงความแม่นยำของการแปลงจาก Double เป็น Rational (b/312680558)
  • ยอมรับรูปแบบเศษส่วน (x/y) สำหรับแท็กเศษส่วน "เดิม" ซึ่งจะแปลงเป็นทศนิยมโดยอัตโนมัติเมื่อส่งคืนจาก getAttribute (b/312680558)setAttribute
  • ตรวจสอบว่าข้อมูล XMP ที่เพิ่มลงในรูปภาพ JPEG ซึ่งยังไม่มี XMP จะเขียนลงในส่วนแยกต่างหากตามที่ระบุไว้ในข้อกำหนด XMP ExifInterface มีเอกสารระบุว่าต้องการ XMP ในแท็ก Exif 700 ในรูปภาพ JPEG (ละเมิดข้อกำหนด) ดังนั้นลักษณะการทำงานนี้จะยังคงอยู่เมื่ออ่าน/เขียนรูปภาพที่มีข้อมูล XMP อยู่แล้ว
  • แก้ไขเอาต์พุตที่เสียหายเมื่อเขียนรูปภาพ WebP ที่มีความสูงหรือความกว้างมากกว่า 8191 พิกเซล (b/342697059)
  • ตอนนี้ไลบรารีนี้ใช้คำอธิบายประกอบเกี่ยวกับค่า Null ของ JSpecify ซึ่งเป็นการใช้งานประเภท นักพัฒนาซอฟต์แวร์ Kotlin ควรใช้อาร์กิวเมนต์คอมไพเลอร์ต่อไปนี้เพื่อบังคับใช้การใช้งานที่ถูกต้อง -Xjspecify-annotations=strict (นี่คือค่าเริ่มต้นที่เริ่มต้นด้วยคอมไพเลอร์ Kotlin เวอร์ชัน 2.1.0) (I5cd0f, b/326456246)
  • นำการระบุสิทธิ์เข้าถึง API ของแพลตฟอร์มใหม่ด้วยตนเองออก เนื่องจากระบบจะดำเนินการนี้โดยอัตโนมัติผ่านการสร้างโมเดล API เมื่อใช้ R8 กับ AGP 7.3 ขึ้นไป (เช่น R8 เวอร์ชัน 3.3) และสำหรับการสร้างทั้งหมดเมื่อใช้ AGP 8.1 ขึ้นไป (เช่น D8 เวอร์ชัน 8.1) เราขอแนะนำให้ลูกค้าที่ไม่ได้ใช้ AGP อัปเดตเป็น D8 เวอร์ชัน 8.1 ขึ้นไป ดูบทความนี้สำหรับรายละเอียดเพิ่มเติม (If6b4c, b/345472586)

เวอร์ชัน 1.3.7

เวอร์ชัน 1.3.7

13 ธันวาคม 2023

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.7 เวอร์ชัน 1.3.7 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • ส่งข้อยกเว้นจาก ExifInterface.saveAttributes() เมื่อพยายามเขียนส่วน JPEG APP1 ที่มีขนาดใหญ่เกินไป (ก่อนหน้านี้เราจะเขียนส่วน APP1 ที่ไม่ถูกต้องซึ่งมีความยาวไม่ถูกต้องและถูกตัดทอน:(b/263747161)) แยกวิเคราะห์ต่อไปหลังจากพบออฟเซ็ต IFD ที่ไม่ถูกต้อง (ก่อนหน้านี้การแยกวิเคราะห์จะหยุดทันที ซึ่งอาจส่งผลให้มีการแสดงค่าที่ไม่ถูกต้อง: (b/264729367))

เวอร์ชัน 1.3.6

เวอร์ชัน 1.3.6

8 กุมภาพันธ์ 2023

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.6 เวอร์ชัน 1.3.6 มีคอมมิตต่อไปนี้

การแก้ไขข้อบกพร่อง

  • แก้ไขการอ่านบิตอัลฟ่าจากก้อนข้อมูล VP8L ของ WebP (b/255405635)

เวอร์ชัน 1.3.5

เวอร์ชัน 1.3.5

24 ตุลาคม 2022

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.5 เวอร์ชัน 1.3.5 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไข 2 กรณีที่ saveAttributes() สร้างไฟล์ WebP ที่ไม่ถูกต้อง

เวอร์ชัน 1.3.4

เวอร์ชัน 1.3.4

5 ตุลาคม 2022

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.4 เวอร์ชัน 1.3.4 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • นำการรองรับการบันทึกแอตทริบิวต์ลงในไฟล์ DNG ออก การรองรับที่เพิ่มเข้ามาในเวอร์ชัน 1.3.3 ไม่สมบูรณ์และทำให้ไฟล์เสียหาย

เวอร์ชัน 1.3.3

เวอร์ชัน 1.3.3

4 สิงหาคม 2021

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.3 เวอร์ชัน 1.3.3 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขแท็กที่เกี่ยวข้องกับ subsec (aosp/1508143)
  • ป้องกัน RuntimeException เมื่อเรียกใช้ setDataSource (c8e66e9)
  • ป้องกันไม่ให้ skipBytes วนซ้ำอย่างไม่มีที่สิ้นสุด (fdbe88b)
  • ดักจับ RuntimeException จาก MediaMetadataRetriever (389b21a)
  • เพิ่มการรองรับการบันทึกแอตทริบิวต์สำหรับไฟล์ DNG (3017dbc)
  • แทนที่แท็กที่ไม่ใช่ภาพขนาดย่อด้วยแท็กภาพขนาดย่อ (e1b916d)

เวอร์ชัน 1.3.2

เวอร์ชัน 1.3.2

2 ธันวาคม 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.2 เวอร์ชัน 1.3.2 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • อนุญาต SRATIONAL สำหรับ GPS_LATITUDE และ GPS_LONGITUDE
  • เพิ่มการรองรับการอ่าน/เขียนรูปแบบรอง (2020-01-01 00:00:00) ของแท็ก DateTime
  • ป้องกันการนำไฟล์ต้นฉบับออกชั่วคราวขณะเรียกใช้ saveAttribute()

เวอร์ชัน 1.3.1

เวอร์ชัน 1.3.1

14 ตุลาคม 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.1 เวอร์ชัน 1.3.1 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขการติดตั้งใช้งาน saveAttributes เพื่อเก็บข้อมูลรูปภาพไว้ใน MediaProvider

เวอร์ชัน 1.3.0

เวอร์ชัน 1.3.0

16 กันยายน 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.0 เวอร์ชัน 1.3.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.2.0

  • ขยายการรองรับการเขียน EXIF ของ WebP ให้รวมถึงไฟล์ที่มีเฉพาะก้อนข้อมูล VP8 หรือ VP8L
  • นำการบัฟเฟอร์ที่ไม่จำเป็นออก ซึ่งทำให้เกิดข้อยกเว้น OutOfMemory สำหรับไฟล์รูปภาพขนาดใหญ่
  • นำ INVALID_DATE_TIME ออกแล้ว ให้ใช้ NULL แทนเพื่อแสดงค่า DateTime ที่ไม่ถูกต้อง
  • ทำให้ getGpsDateTime แสดงผล Long.MIN_VALUE แทน -1 สำหรับค่าที่ไม่ถูกต้อง

เวอร์ชัน 1.3.0-rc01

2 กันยายน 2020

androidx.exifinterface:exifinterface:1.3.0-rc01 เปิดตัวโดยไม่มีการเปลี่ยนแปลงใดๆ ตั้งแต่ 1.3.0-beta01 เวอร์ชัน 1.3.0-rc01 มีคอมมิตต่อไปนี้

เวอร์ชัน 1.3.0-beta01

19 สิงหาคม 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.0-beta01 เวอร์ชัน 1.3.0-beta01 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • ขยายการรองรับการเขียน EXIF ของ WebP ให้รวมถึงไฟล์ที่มีเฉพาะก้อนข้อมูล VP8 หรือ VP8L

การเปลี่ยนแปลง API

  • นำ INVALID_DATE_TIME ออกแล้ว ให้ใช้ NULL เพื่อแสดงค่า DateTime ที่ไม่ถูกต้องแทน

การแก้ไขข้อบกพร่อง

  • แก้ไขให้ getGpsDateTime แสดงผลเป็น Long.MIN_VALUE แทน -1 เนื่องจาก -1 เป็นค่าที่ถูกต้อง
  • ฟังก์ชัน Getter ที่เกี่ยวข้องกับ DateTime จะพิจารณาค่าออฟเซ็ต (+/-) ของสตริงวันที่
  • นำการบัฟเฟอร์ที่ไม่จำเป็นออก ซึ่งทำให้เกิดข้อยกเว้น OutOfMemory สำหรับไฟล์รูปภาพขนาดใหญ่
  • ตั้งค่าภาษาเริ่มต้นเป็นสหรัฐอเมริกา
  • เปลี่ยนจากการเพิ่ม ".tmp" เพื่อสร้างไฟล์ชั่วคราวเป็นการเพิ่มคำนำหน้า

เวอร์ชัน 1.3.0-alpha01

19 กุมภาพันธ์ 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.3.0-alpha01 เวอร์ชัน 1.3.0-alpha01 มีคอมมิตเหล่านี้

การเปลี่ยนแปลง API

  • เพิ่มวิธีการใหม่: ExifInterface.getGpsDateTime()

เวอร์ชัน 1.2.0

เวอร์ชัน 1.2.0

1 เมษายน 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.2.0 เวอร์ชัน 1.2.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.1.0

  • เพิ่มการรองรับการเพิ่ม EXIF ลงในไฟล์ PNG
  • เพิ่มการรองรับไฟล์ WebP และสตรีมข้อมูล EXIF เท่านั้น
  • เพิ่ม API เพื่อตรวจสอบว่าระบบรองรับประเภท MIME ที่ระบุหรือไม่
  • เพิ่มแท็กสำหรับเวลาออฟเซ็ต: TAG_OFFSET_TIME, TAF_OFFSET_TIME_DIGITIZED และ TAG_OFFSET_TIME_ORIGINAL

เวอร์ชัน 1.2.0-rc01

19 กุมภาพันธ์ 2020

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.2.0-rc01 เวอร์ชัน 1.2.0-rc01 มีคอมมิตเหล่านี้

การแก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ระบบบันทึกไฟล์ JPEG ไม่ถูกต้องหาก JPEG มีข้อมูล XMP

เวอร์ชัน 1.2.0-beta01

18 ธันวาคม 2019

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.2.0-beta01 เวอร์ชัน 1.2.0-beta01 มีคอมมิตเหล่านี้

ฟีเจอร์ใหม่

  • เพิ่มการรองรับการเพิ่ม EXIF ลงในไฟล์ PNG
  • เพิ่มการรองรับการอ่านและเขียน EXIF จากไฟล์ WebP
  • เพิ่มการรองรับสตรีมข้อมูล EXIF เท่านั้น

การเปลี่ยนแปลง API

  • เพิ่ม API เพื่อตรวจสอบว่าระบบรองรับประเภท MIME ที่ระบุหรือไม่
  • เปิดเผยแท็ก OffsetTime* สำหรับการอ่านและการเขียน

แก้ไขข้อบกพร่อง

  • แก้ไขปัญหาที่ระบบแสดงออฟเซ็ตที่ไม่ถูกต้องสำหรับ getAttributeRange()

เวอร์ชัน 1.1.0

เวอร์ชัน 1.1.0

20 พฤศจิกายน 2019

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.1.0 เวอร์ชัน 1.1.0 มีคอมมิตเหล่านี้

การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 1.0.0

  • รองรับรูปแบบ HEIF และแท็ก XMP เพิ่มเติม
  • เพิ่มการรองรับการสร้างออบเจ็กต์ ExifInterface จาก File หรือ FileDescriptor
  • เพิ่มวิธีการรับแอตทริบิวต์: hasAttribute, getAttributeBytes และ getAttributesRange

เวอร์ชัน 1.1.0-rc01

9 ตุลาคม 2019

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.1.0-rc01 เวอร์ชัน 1.1.0-rc01 มีคอมมิตเหล่านี้

แก้ไขข้อบกพร่อง

  • เพิ่มชื่อรูปแบบที่ขาดหายไป (IFD) เพื่อป้องกันไม่ให้ ArrayIndexOutOfBoundsException ใน loadAttributes
  • ป้องกันการลบไฟล์ต้นฉบับเมื่อเกิดข้อยกเว้นขณะเรียกใช้ saveAttributes
  • แก้ไขปัญหาข้อยกเว้นเมื่อมีการเรียกใช้ saveAttributes() หลังจากเขียนทับไฟล์

เวอร์ชัน 1.1.0-beta01

2 กรกฎาคม 2019

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.1.0-beta01 ดูคอมมิตที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • ส่ง NullPointerException เมื่อตั้งค่า null สำหรับอาร์กิวเมนต์ @NonNull
  • การรองรับแท็ก XMP

การเปลี่ยนแปลง API

  • เพิ่มวิธีการรับข้อมูลแอตทริบิวต์
  • hasAttribute, getAttributeBytes และ getAttributesRange

แก้ไขข้อบกพร่อง

  • ป้องกันหน่วยความจำของตัวอธิบายไฟล์รั่วไหล

เวอร์ชัน 1.1.0-alpha01

13 มีนาคม 2019

ระบบจะถอนการอ้างสิทธิ์androidx.exifinterface:exifinterface:1.1.0-alpha01 ดูรายการคอมมิตทั้งหมดที่รวมอยู่ในเวอร์ชันนี้ได้ที่นี่

ฟีเจอร์ใหม่

  • รองรับรูปแบบ HEIF

การเปลี่ยนแปลง API

  • เพิ่มตัวสร้างของ ExifInterface
  • แก้ไขการสะกดคำผิด: TAG_CAMARA_OWNER_NAME -> TAG_CAMERA_OWNER_NAME

แก้ไขข้อบกพร่อง

  • แก้ไขการตรวจสอบการล้นที่เป็นไปได้สำหรับภาพขนาดย่อ (aosp/748608)