Exifinterface
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | เวอร์ชันอัลฟ่า |
|---|---|---|---|---|
| 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)