JPG에서 Exif 정보를 추출하는 코드를 작성하려고합니다.JPG 세그먼트 길이 인코딩
Exif는 JPG 파일의 APP1 세그먼트에 저장됩니다.
FF E1 // APP1 segment marker
nn nn // Length of segment
45 // 'E'
78 // 'x'
69 // 'i'
66 // 'f'
을 그리고 FF
또는 00
이외의 뒤에 FF
이 때까지 간다 : the Exif spec에 따르면, APP1 세그먼트의 형식은 다음과 같이 시작할 예정이다.
16 진수 편집기에서 JPG를 보면 FF E1
과 Exif
문자열을 볼 수 있지만 길이 바이트를 디코딩하는 데 문제가 있습니다. 예 : 하나의 jpg에서 내 16 진수 편집기는 APP1 세그먼트 길이가 686 바이트라고 알려주지 만 길이 바이트는 F7 C8
입니다.
소수점 이하 자릿수로 686을 사용하려면 어떻게해야합니까?
편집 : 다음은 예제 파일의 첫 부분입니다 :
FF D8 FF E1 F7 C8 45 78 69 66 00 00 4D 4D 00 2A 00 00 00 08
편집 :는 사실, 내가 여기에 무슨 일이 일어나고 있는지 알 것 같아요. APP1 세그먼트가 실제로 다른 세그먼트를 "포함"합니까? 예를 들어 썸네일 데이터가 APP1 내부에있는 것으로 간주되면 길이가 더 합리적인 것처럼 보입니다. 아무도 이것을 확인하거나 거부 할 수 있습니까?
APP1 세그먼트가 63432 바이트가 아닙니까? 686이라는 걸 어떻게 알았 니? 아마도 686 크기의 작은 이미지 일 겁니다. – Gabe
@gabe 새 세그먼트의 다음 'FF xx'마커 바이트를 찾았습니다. 그 맞습니까? – Blorgbeard
예, FFDB가 다음 마커 (DQT)가 될 것으로 기대합니다. – Gabe