IT

EXIF (Exchangeable Image File Format) - 이미지 파일 메타 데이터 포맷

huiyu 2021. 1. 26. 06:00

EXIF(Exchangeable Image File Format), 교환 이미지 파일 형식

 디지털 카메라 등에서 사용되는 이미지 파일 메타데이터 포맷으로, 카메라가 촬영한 사진, 녹음파일에 시간 등의 각종 정보를 담기 위해 개발되었다. 즉, JPEG, TIFF 6.0과 RIFF, WAV 포맷에 이미지나 소리에 대한 정보를 추가로 기록할 수 있다.

기록정보

- 날짜와 시간 정보
- 카메라 설정/카메라 정보
- 저작권 정보에 대한 설명
- 위치 정보
- Orientation(*이미지 회전/반전 정보로 이미지 수정없이 이 태그로 회전정보를 입력할 수 있다. 편집 프로그램에 따라 이 값을 수정할수도, 이미지 자체를 회전시킬 수도 있다. 이 태그를 인식하지 못하는 프로그램에선 문제가 발생할 수 있다.)

리눅스에서 파일 정보 조회

identify [파일명] 

- 아래 exif 공식사이트에서 태그별 옵션값을 확인할 수 있다.

exiftool.org/TagNames/EXIF.html

 

EXIF Tags

Tag IDTag Name WritableGroupValues / Notes 0x0001 InteropIndex string! InteropIFD 'R03' = R03 - DCF option file (Adobe RGB) 'R98' = R98 - DCF basic file (sRGB) 'THM' = THM - DCF thumbnail file 0x0002 InteropVersion undef!: InteropIFD   0x000b ProcessingS

exiftool.org

 최근 회전된 이미지 사용시 문제가 발생한다는 이슈가 있었다. 문제는 이미지의 Orientation 값. 현재 구현이 이 값을 고려하지 않아 발생했었다. 이 값은 이미지에서 회전값을 나타내는 값이다. 이 값을 수정하고 변경된 태그값을 읽음으로써 이미지 자체를 회전시키지 않아도 회전된 이미지를 보여줄 수 있게 된다.

 그래서 이미지를 회전시킬 경우, 두가지 회전이 있을 수 있다. 이미지 자체를 회전시키는 경우와 이 orientation 값을 변경한 회전. 이 두 이미지는 우리눈엔 동일하게 회전된 이미지로 보이지만, exif정보를 봤을 땐 다른 정보를 갖을 수 있다.
 1024*768 이미지를 90도 회전시, 이미지 자체를 회전시키면 정보는 768*1024/orientation값은 0을 갖게 된다. 그러나 orientation을 이용한 회전을 한다면 size는 1024*768, orientation 값은 '6'(Rotate 90 CW) 값을 갖게 된다.
 내가 확인한 문제의 경우 화면자체에 orientation을 확인하여 정상적으로 그림을 그려주고 있으나, 사이즈는 회전된 사이즈를 고려하지 않아서 발생하는 문제였다. 단순했지만 exif에 대해 잘 몰랐어서 처음엔 의아했던 문제이다.

 개발시 뿐만 아니라 편집 프로그램을 이용한 회전에 있어서도 이 툴이 어떤 회전을 하고, 이 태그를 통해 읽는지 여부에 따라 수정된 결과가 다르게 보일 수도 있으니 이를 알고 작업을 하는게 좋다. *알씨를 통해 회전시킬 경우 exif 옵션을 통한 회전하는게 설정값으로 있다.

 

 

728x90
반응형