JPEG JFIF 파일을 JPEG Exif 형식으로 변환하는 방법? 쓰므 로 품질이

최근에 카메라의 SD 카드를 Windows 7 PC에 넣고 사진을 찾아보기 시작했습니다. 일부는 올바르게 정렬되지 않았 rotate feature으며 Windows 사진 뷰어에 포함되어 원하는대로 볼 수 있습니다.

내가 알지 못하는 것은 회전 기능을 사용할 때 다음 또는 이전 버튼을 누를 때 그림을 덮어 쓰므 로 품질이 떨어질 수 있습니다 (제 생각에는 나쁜 생각이므로 앱은 사용자에게 적어도 무엇을 경고해야합니다 이러한 기능을 사용할 때 발생합니다).

그 후 카메라에 SD 카드를 다시 삽입했는데 놀람이 생겼습니다. 회전 된 사진을 더 이상 미리 볼 수 없었습니다. 대신 “호환되지 않는 JPEG 형식”이라는 검은 색 화면이 나타납니다. 다른 파일 (손대지 않은)은 여전히 ​​작동합니다.

무슨 일이 있었는지 이해하기 위해 카메라에서 JPEG 파일을 열었고 16 진수 편집기로 Windows 7에서 생성 한 파일을 열었습니다. 차이점은 다음과 같습니다.

카메라 JPEG 파일에는 Exif태그가 있습니다 ( 0xE1헤더에 있음). 다른 JPEG 파일 (Windows 7)에는 먼저 JFIF태그가 있고 그 뒤에 Exif태그가 있습니다 ( 0xE0헤더에 있음).

따라서 잘 이해하면 둘 다 JPEG 파일이지만 다른 내부 형식을 사용합니다.

여기 내 질문이 있습니다 : (일부 도구를 사용하여) JFIF파일을 Exif형식 으로 변환하는 것이 가능 합니까?

원본 카메라 파일이 다시 인코딩되었으므로 일부 품질이 떨어집니다 (원본을 다시 가져올 수 없음). JFIF에서 Exif로 다시 변환하면 알고 싶습니다 (가능한 경우 두 번째 품질 손실없이 …)



답변

JPEG 표준에는 특정 이유로 생성 된 많은 파일 호환 변형이 있으며, 자주 사용되는 두 가지 유형은 EXIF와 JFIF입니다.

두 파일 모두 JPEG 파일로 분류되고 JPEG 확장자를 가진 컴퓨터에 표시되지만 카메라 나 컴퓨터에서 처리하는 동안 원본 이미지에 추가되는 보충 데이터로 인해 차이가 발생합니다. 이 데이터는 일반적으로 “APPn”이라고하는 영역에 저장됩니다 (여기서 “n”은 0,1,2 등입니다).

대부분의 이미징 소프트웨어 응용 프로그램은 두 가지 유형의 JPEG 파일을 모두 열 수 있지만 대부분의 디지털 카메라는 EXIF ​​형식 이미지 만 표시 할 수 있습니다. Photoshop과 같은 이미징 프로그램에서 EXIF ​​파일을 연 다음 저장하면 파일이 JFIF 형식으로 변경되어 카메라에서 이미지를 더 이상 열 수없고 촬영 데이터가 손실됩니다.

EXIF

EXIF 형식은 디지털 카메라에 사용하기 위해 만들어졌으며 APPn은 이미지가 기록 될 때 카메라 상태 (셔터, 조리개 화이트 밸런스 등)와 같은 정보를 저장합니다.

JFIF

JFIF 변형은 이미징 산업에서 일반적으로 사용되며 대부분의 소프트웨어 응용 프로그램은이 형식으로 파일을 저장합니다. JFIF는 APPn을 사용하여 저작권 및 캡션 (IPTC 텍스트)과 같은 정보 및 색상 관리를위한 프로파일 정보 (icm 데이터)를 저장합니다.

ExifTool을 사용해보고이 명령을 실행할 수 있지만 촬영 데이터가 손실되어 카메라가 이미지를 표시하지 못할 수 있습니다.

exiftool "-exif:all<jfif:all" "-thumbnailimage<jfif:thumbnailimage" FILE


답변

Wikipedia 기사 JPEG 파일 교환 형식 의 호환성 섹션에서 :

최신 교환 가능한 이미지 파일 형식 (Exif)은 JFIF와 비슷하지만 두 표준은 서로 호환되지 않습니다. 두 표준 모두 특정 응용 프로그램 세그먼트 (JFIF의 경우 APP0, Exif의 경우 APP1)가 이미지 파일에서 첫 번째 여야한다고 지정하기 때문입니다. 실제로 많은 프로그램과 디지털 카메라는 두 응용 프로그램 세그먼트가 모두 포함 된 파일을 생성합니다. 이것은 대부분의 디코더의 이미지 디코딩에는 영향을 미치지 않지만 잘못 설계된 JFIF 또는 Exif 파서는 파일을 제대로 인식하지 못할 수 있습니다.

위의 내용을 기반으로 16 진수 편집기로 APP0 세그먼트 / 마커를 제거하고 APP1 세그먼트 / 마커를 추가 (예 : Exif 데이터를 조작하는 다른 도구 사용)하여 JFIF를 Exif로 변환 할 수 있습니다. 또는 Exif 데이터를 추가하면 대부분의 프로그램에서 이미지를 계속 열 수 있습니다.


답변