반응형

멍청하게 실수한 내용을 정리해서 나중에 똑같은 반복을 하지 않기 위해 기록


디카들로 찍은 사진을 손쉽게 정리하기 위해 디카 사진 정리 도구 FPO(Family Photo Organizer)를 만들어 쓰고 있다.


한땀 한땀 만든 코드라, 버그가 없다고 착각생각하며 쓰고 있었는데…

치명적인 버그를 발견했다.

실수로 Exif에서 GPS 위치 정보를 삭제하도록 만든 것이다.


더 미치는 건, 깔끔하게 GPS 정보를 날리는 게 아니라 계산 오류로 GPS 정보 필드를 반토막lllorz



1. 아이 클라우드


일단 PC로 복사하고 폰에서 삭제한 사진들의 백업본을 뒤져봤다.

잡스 느님의 은혜로우신 작품 아이 클라우드가 있어 사진들이 다 백업되어있…을줄 알았다.

하지만, 뒤져보니 70장 정도밖에 백업이 안 되어있었다.


일단 이 자료를 이용하기 위해, 첫번째 복원 프로그램을 만들었다.

같은 파일명의 사진을 찾아, Exif 정보만 통째로 복제하는 걸로.



2. 아이패드 미니


잡스 느님의 은혜로우신 아이 클라우드는 같은 계정을 사용하면 다른 장비에도 백업된다.

혹시나 하고 아이패드 미니를 뒤졌는데, 잡스루야! 망가뜨린 사진의 80% 정도가 백업되어 있었다.


그런데, 다른 장비로 백업될 때는 파일명을 변경해서 저장한다.

두번째 복원 프로그램은 이점을 고려해서 만들었다.

Exif의 모든 정보[각주:1]를 비교해서 같은 카메라로 같은 시간에 찍은 경우 Exif 정보를 통째로 복제하도록.



3. 작업 과정의 삽질


FPO는 파일 크기를 줄이기 위해 썸네일을 제거하는 옵션이 있다.

1-2의 작업을 하면서 FPO를 수정하는 과정에서 우스운 버그[각주:2]가 끼어들었다.

썸네일 이미지 자체만 지우고, 그 앞의 태그(IFD1이라 불림)는 삭제하지 않는 것…


복원을 하는 과정에서 더 데이터가 꼬일 뻔한 삽질을 다시 한 번 벌인 거다.

그래서, 이렇게 망가뜨린 Exif를 다시 한 번 수정하는 프로그램을 또 만들었다… ㅠㅠ


그리고, 이 세 가지 작업을 한 프로그램을 하나로 통합했다…

다시 쓸 일이야 있겠냐마는…


삽질의 결정판. 다시는 쓸 일이 없기를.



  1. 카메라 기종, SW명, 촬영일시(밀리초 포함) 등등 [본문으로]
  2. 공개된 버전엔 없는 버그란 게 그나마 다행이랄까… [본문으로]
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band