Exifinterface

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

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

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

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

ดึงดูด

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

Kotlin

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

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

ความคิดเห็น

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

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

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

เวอร์ชัน 1.4

เวอร์ชัน 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 เผยแพร่โดยไม่มีการเปลี่ยนแปลงนับตั้งแต่ beta01 เวอร์ชัน 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 ที่มีเครื่องหมาย JPEG APP1 อยู่ก่อนข้อมูล Exif อย่างไม่ถูกต้อง (b/281638358)
  • ตรวจสอบว่าการเปลี่ยนแปลง XMP ใน JPEG ที่มีกลุ่ม XMP แยกต่างหากได้รับการจัดเก็บไว้ในกลุ่ม XMP แยกต่างหากเดียวกันโดย saveAttributes() แทนที่จะเขียนลงในแท็ก TIFF/Exif 700 ซึ่งข้อกำหนด XMP ไม่รองรับและเครื่องมือจำนวนมากจะไม่พบ
  • หลีกเลี่ยงการคัดลอกข้อมูล XMP จากส่วนที่แยกต่างหากไปยังไดเรกทอรีตัวอย่าง TIFF เมื่อบันทึก (b/309843390)
  • ปรับปรุงความแม่นยำของการเปลี่ยนรูปแบบเลขทศนิยมเป็นเลขทศนิยมเชิงเหตุผล (b/312680558)
  • ยอมรับรูปแบบเชิงตรรกะ (x/y) ไปยัง setAttribute สำหรับแท็กเชิงตรรกะ "เดิม" ซึ่งจะแปลงเป็นทศนิยมโดยอัตโนมัติเมื่อแสดงผลจาก getAttribute (b/312680558)
  • ตรวจสอบว่าข้อมูล XMP ที่เพิ่มลงในรูปภาพ JPEG ซึ่งไม่มี XMP อยู่แล้วได้รับการเขียนไปยังกลุ่มแยกต่างหากตามที่ข้อกำหนด XMP ระบุไว้ ExifInterface มีการบันทึกไว้ว่าต้องการ XMP ในแท็ก Exif 700 ในรูปภาพ JPEG (ละเมิดข้อกำหนด) ระบบจึงจะยังคงลักษณะการทำงานนี้ไว้เมื่ออ่าน/เขียนรูปภาพที่มีข้อมูล XMP อยู่แล้ว
  • แก้ไขเอาต์พุตที่เสียหายเมื่อเขียนรูปภาพ WebP ที่มีความสูงหรือความกว้างมากกว่า 8191 พิกเซล (b/342697059)
  • ตอนนี้ไลบรารีนี้ใช้แอตทริบิวต์ JSpecify nullness ซึ่งเป็นการใช้ประเภท นักพัฒนาซอฟต์แวร์ 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() เมื่อพยายามเขียนกลุ่ม APP1 ของ JPEG ที่มีขนาดใหญ่เกินไป (ก่อนหน้านี้เราจะเขียนกลุ่ม APP1 ที่ไม่ถูกต้องซึ่งมีความยาวที่ตัดไม่ถูกต้อง:(b/263747161)) ดำเนินการแยกวิเคราะห์ต่อหลังจากพบออฟเซ็ต IFD ที่ไม่ถูกต้อง (ก่อนหน้านี้การแยกวิเคราะห์จะหยุดทันที ซึ่งอาจส่งผลให้ระบบแสดงผลค่าที่ไม่ถูกต้อง: (b/264729367))

เวอร์ชัน 1.3.6

เวอร์ชัน 1.3.6

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

androidx.exifinterface:exifinterface:1.3.6 ได้รับการปล่อยแล้ว เวอร์ชัน 1.3.6 มีคอมมิตเหล่านี้

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

  • แก้ไขการอ่านบิตอัลฟ่าจากกลุ่ม WebP VP8L (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 มีคอมมิตเหล่านี้

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

  • แก้ไขการแยกวิเคราะห์แท็กที่เกี่ยวข้องกับส่วนย่อย (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 เพื่อแสดงผลค่าวันที่และเวลาที่ไม่ถูกต้องแทน
  • ทําให้ 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 เพื่อแสดงผลค่าวันที่และเวลาที่ไม่ถูกต้องแทน

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

  • ทําให้ getGpsDateTime แสดงผลเป็น Long.MIN_VALUE แทน -1 เนื่องจาก -1 เป็นค่าที่ถูกต้อง
  • ทำให้ตัวรับค่าที่เกี่ยวข้องกับ 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

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

  • ป้องกันไม่ให้หน่วยความจําของ File Descriptor รั่วไหล

เวอร์ชัน 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)