เรากำลังใช้ Adobe Photoshop บน Mac เพื่อส่งออกไฟล์ภาพ JPEG ไฟล์ภาพเหล่านี้จำเป็นต้องแสดงผลบนอุปกรณ์แสดงผลแบบฝังที่เราไม่สามารถควบคุมได้ ดูเหมือนว่าไฟล์ที่ส่งออกโดย Photoshop จะใช้รูปแบบส่วนหัว Exif ในขณะที่อุปกรณ์ฝังตัวเข้าใจเฉพาะรูปแบบส่วนหัวของ JFIF
พูดอย่างเคร่งครัดมาตรฐานของ JFIF และ Exif นั้นไม่เข้ากันเพราะแต่ละอย่างนั้น
ระบุว่าส่วนเครื่องหมายของพวกเขา (APP0 หรือ APP1 ตามลำดับ) ปรากฏขึ้นก่อน ใน
ในทางปฏิบัติไฟล์ JPEG ส่วนใหญ่จะมีเซ็กเมนต์มาร์กเกอร์ JFIF ที่อยู่ข้างหน้า Exif
ส่วนหัว สิ่งนี้ช่วยให้ผู้อ่านที่มีอายุมากกว่าจัดการอย่างถูกต้องในส่วน JFIF รูปแบบที่เก่ากว่า
ในขณะที่ผู้อ่านรุ่นใหม่ยังถอดรหัสกลุ่ม Exif ต่อไปนี้ซึ่งเข้มงวดน้อยลง
ต้องให้ปรากฏก่อน
ตัวอย่างเช่นนี่คือ JPEG ที่แสดงผลบน Mac:
ในขณะที่ JPEG ที่แสดงผลบนพีซี (ซึ่งทำงานบนอุปกรณ์ฝังตัว) มี:
นอกจากนี้คุณยังสามารถเห็นส่วนหัว Exif มาหลังจาก JFIF หนึ่งในภาพพีซีด้านบน
มีการตั้งค่าใน Photoshop ที่ช่วยให้เราสามารถส่งออก JPEG ด้วยคำนำหน้า JFIF ในส่วนหัวหรือไม่
แก้ไข: หลังการใช้งาน JPEGsnoop ข้อมูลส่วนหัวที่ถอดรหัสมีดังนี้
รูปภาพที่สร้างจากพีซีมีส่วนหัว APP0 (JFIF):
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
length = 16
identifier = [JFIF]
version = [1.1]
density = 96 x 96 DPI (dots per inch)
thumbnail = 0 x 0
รูปภาพที่สร้างโดย Mac มีส่วนหัวของ APP1 (Exif):
*** Marker: APP1 (xFFE1) ***
OFFSET: 0x00000002
length = 24
Identifier = [Exif]
Identifier TIFF = 0x[49492A00 08000000]
Endian = Intel (little)
TAG Mark x002A = 0x002A
EXIF IFD0 @ Absolute 0x00000014
Dir Length = 0x0000
Offset to Next IFD = 0x00000000
จากนั้นหลังจากเรียกใช้ XnView ที่แนะนำแล้วส่วนหัวของ Mac จะมีลักษณะดังนี้:
*** Marker: APP0 (xFFE0) ***
OFFSET: 0x00000002
length = 16
identifier = [JFIF]
version = [1.1]
density = 72 x 72 DPI (dots per inch)
thumbnail = 0 x 0
และอุปกรณ์ฝังตัวสามารถอ่าน JPEG ที่ Mac สร้างขึ้นได้