Image-Anonymizer는 HEIF 코덱 이미지를 지원하는 익명화 프로그램입니다.
주요 기능으로 파일 이름 해싱 그리고 EXIF, XMP, GPS 정보 등을 제거하는 기능이 있고 부가적인 편의 기능들도 함께 지원합니다.
- HEIF 코덱 이미지 (.heif, .heic, .heix 확장자)를 지원합니다.
- 파일 이름 SHA256 해싱을 지원합니다.
- EXIF, XMP, GPS 정보를 제거할 수 있습니다.
- 이미지 처리 후 원본 이미지 삭제 기능을 지원합니다.
- JPEG 파일 변환을 지원합니다.
- JPEG 이미지 압축을 지원합니다.
- Windows 11 Pro (23H2), Python 3.11.4 환경에서 테스트 되었습니다.
- 현재 지원하는 확장자는 다음과 같습니다. (.jpg, .jpeg, .png, .heif, .heic, .heix)
- 파일 이름의 경우 중요도가 높지 않아 난독화 목적의 해싱입니다. 별도의 Salt가 적용되어 있지 않기 때문에 레인보우 테이블을 이용한 평문 추출이 가능할 수 있습니다.
- EXIF 데이터 중 사진 방향 정보를 담는 Orientation 값은 사진 회전 문제가 발생할 수 있어 해당 값은 제거하지 않습니다.
- 이미지 압축의 경우 JPEG 손실 압축 방식입니다. PNG 등의 무손실 압축 포맷 이미지의 용량을 줄이고 싶은 경우 JPEG 변환과 함께 사용하면 됩니다.
- 사용된 추가 라이브러리로 파이썬 이미지 처리 라이브러리 Pillow와 pillow-heif가 사용되었습니다.
- 초기 실행 시 INPUT, OUTPUT 폴더, settings.json 파일이 생성됩니다.
- 추가적인 설정이 필요한 경우 settings.json 파일을 수정합니다.
- INPUT 폴더에 사진 파일을 넣습니다.
- anonymizer.py를 실행합니다.
- OUTPUT 폴더에 파일들이 생성됩니다.
- EXIF 데이터와 Orientation
사진기로 촬영한 사진의 경우 EXIF 데이터를 모두 지울 경우
Orientation 값이 지워져 세로 사진 같은 경우 사진이 돌아가는 경우가 생긴다.
이게 일반적인 경우인데...
아이폰으로 촬영된 heic 사진 파일과 PNG 캡처 사진의 경우
EXIF 데이터를 모두 지워도 세로 사진이 방향이 그대로 유지가 된다.
촬영 시에 너비와 높이를 아예 돌려버려서 사진 파일을 만들어내는 것 같다.
JPEG에서도 동일한 방법을 사용하는지는 확인해 보지 못했는데
근본적인 문제를 해결한 좋은 방법인 것 같았다.
- 추가하고 싶은 것
1. 옵션 중 Orientation 데이터 제거 선택
2. JPEG to HEIF or PNG to HEIF와 같이 HEIF 변환 기능 구현 (고효율 압축)
3. HEIF 파일 처리 속도 개선
4. 실행 파일 배포
5. GUI 구현