스노우와 같은 사진 편집 앱을 사용하다 보면 원본 사진에 있는 Exif 태그가 사본으로 복사되지 않는 경우가 종종 발생합니다. 앱에 따라서는 옵션에서 이러한 설정을 켜고 끌 수도 있지만 개인정보 보호 등을 위해서 일부러 Exif 태그를 복사하지 않도록 구현된 앱도 많은 것 같습니다. 일반적으로 Exif 태그가 없더라도 사진을 보는 데에는 전혀 지장이 없지만 사진을 찍은 시간이나 장소, 어떠한 세팅으로 찍었는지를 체계적으로 관리하시는 분들께는 Exif 태그가 상당히 중요한 역할을 하고 있지요. 저도 사진 관리를 위해 Exif를 적극적으로 활용하는 편인데 보정 등의 과정을 거치고 나면 이러한 정보가 누락되는 경우가 많아 일단 사진을 컴퓨터로 옮긴 후에 ExifTool을 이용해서 원본으로부터 Exif 태그를 복사해오는 방식으로 이를 해결하고 있습니다. 하지만 이 과정이 꽤나 번거롭다보니 폰에서 바로 Exif 태그를 복사할 수 있는 방법들을 찾아보았는데 터미널에서 직접 명령을 입력해야 하거나 아니면 유료결제가 필요한 앱이 대부분이라 뭔가 조금 아까운 느낌이 들더군요. 그렇지만 여기에 시간을 많이 쓰는 것도 아까워서 제게 필요한 최소한의 기능만을 빠르게 구현해보고자 안드로이드 API를 살펴보니 다행히 ExifInterface라는 클래스가 있었습니다. 그래서 ACTION_OPEN_DOCUMENT 인텐트를 이용하여 원본과 사본 이미지 파일의 URI를 얻어온 후 ExifInterface를 통해 원본 Exif Attribute를 사본 이미지에 덮어쓰는 방식으로 구현했더니 의도한 대로 잘 동작했습니다.
파일 간 Exif 태그를 복사하는 기능 외에는 다른 아무런 편의기능이 없는 멍텅구리 앱이지만 혹시 필요하신 분이 계시다면 첨부된 APK 파일을 다운로드하신 후 사용하시는 안드로이드 단말에 설치해 주시면 됩니다. 설치 시 출처를 알 수 없는 앱이라는 경고가 발생하거나 설치가 차단될 경우에는 단말 설정에서 출처를 알 수 없는 앱 설치를 허용해 주셔야 합니다. 안드로이드 7.0 이상이 설치된 단말에서는 문제 없이 동작하리라 생각됩니다만 워낙 다양한 기기들이 많다보니 모든 디바이스에서 정상적으로 작동할 거라는 보장은 드리기 어려운 점 양해 부탁드립니다.
사용 방법은 설명드릴 필요도 없이 매우 간단합니다. 'SELECT TARGET IMAGE' 버튼을 눌러 Exif 태그를 덮어쓸 이미지 파일을 선택하고 'SELECT SOURCE IMAGE' 버튼을 눌러 Exif 태그를 복사해 올 원본 이미지 파일을 선택한 후 'EXECUTE' 버튼을 누르면 복사가 됩니다. 그리고 'Exclude image orientation tag' 체크박스가 체크되어 있으면 이미지의 방향을 결정하는 Orientation 태그는 복사하지 않는데요, 이는 스노우 등의 앱에서 이미지를 보정한 후 사본을 저장할 경우 원본 이미지의 회전 상태에 따라 픽셀 정보 자체를 회전 및 플립시킨 후 회전 상태를 기본값(1: 'Horizontal (normal)')으로 설정하는 경우가 많기 때문에 이를 유지하기 위함입니다. 만약 Orientation 태그까지 복사하시기를 원하시다면 해당 체크박스의 체크를 해제해 주시면 됩니다. 이 외에도 이미지가 수정되는 상황을 가정하여 이미지 사이즈와 썸네일, 압축방식 등 몇 가지 태그는 복사하지 않도록 되어 있습니다.
[GitHub]