[OP의 편집 #1:이 질문에 대한 답변은 Exiftool 창시자/유지관리자 Phil Harvey가 매우 잘 답변한 것으로 나타났습니다.ExifTool 포럼의 중복 스레드]
[OP의 편집 #2:에서ExifTool FAQ:ExifTool은~ 아니다모든 메타데이터를 삭제하려고 시도하면 파일에서 메타데이터가 완전히 제거됩니다.'작성기 제한사항'을 참조하세요.]
현재 백업 드라이브에 없는 사진을 이전 하드 드라이브에서 검색하고 싶습니다. 형식에는 jpg, png, tif 등은 물론 다양한 원시 형식(다양한 카메라 모델 및 제조업체)이 포함됩니다.
저는 이미지 자체의 고유성에만 관심이 있으며, 예를 들어 EXIF 태그 값, 주어진 EXIF 태그 자체의 유무, 내장된 썸네일 등의 차이로 인한 고유성은 아닙니다.
동일한 이미지의 여러 복사본 간에 손상/데이터 부패가 발견될 것으로 예상되지 않더라도 크기 조정 및 색상 변경으로 인한 차이점뿐만 아니라 이를 감지하고 싶습니다.
[OP에 의한 편집 #3:명확히 하자면: 작은 비율의 거짓 긍정은 허용 가능하며(파일이 고유하지 않은데도 고유한 것으로 결론지음) 거짓 부정은 매우 바람직하지 않습니다(파일이 중복된 것으로 잘못 결론을 내림).]
내 계획은 모든 메타데이터를 제거한 후 md5sum을 기반으로 고유성을 식별하는 것입니다.
메타데이터를 제거하려면 어떻게 해야 합니까?
충분 할까요 exiftool -all= <filename>
?
답변1
와 함께imagemagick
패키지와JPEG 뿐만 아니라간단히 다음을 수행할 수 있습니다.
mogrify -strip ./*.jpg
이는 ./
"-"로 시작하는 파일 이름과 관련된 문제를 방지하는 것입니다.
에서수동:
-strip
프로필, 댓글 또는 PNG 청크(bKGD,cHRM,EXIF,gAMA,iCCP,iTXt,sRGB,tEXt,zCCP,zTXt,date)의 이미지를 제거합니다.
많이추가 정보 및 주의사항여기.
이는 @grochmal과 유사하지만 훨씬 더 간단하고 간단합니다.
답변2
jhead
JPEG 파일에서 이미지가 아닌 메타데이터를 제거하는 기능이 있습니다. 매뉴얼 페이지에는 다음과 같이 나와 있습니다.
-dc
JPEG 헤더에서 설명 필드를 삭제합니다. 주석은 Exif 헤더의 일부가 아닙니다.
-de
Exif 헤더를 완전히 삭제합니다. 다른 메타데이터 섹션은 그대로 둡니다.
-di
IPTC 섹션이 있으면 삭제합니다. 다른 메타데이터 섹션은 그대로 둡니다.
-dx
XMP 섹션이 있으면 삭제합니다. 다른 메타데이터 섹션은 그대로 둡니다.
-du
Exif가 아니고 주석도 아니고 이미지에 기여하지 않는 jpeg 섹션(예: Photoshop이 이미지에 남길 수 있는 데이터)을 삭제합니다.
-purejpg
이미지 렌더링에 필요하지 않은 JPEG 섹션을 모두 삭제합니다. 다양한 애플리케이션이 이미지에 남겨둔 메타데이터를 제거합니다.
-de
-dc
및 옵션 의 조합입니다-du
.
답변3
이것은 약간 오래되었지만 예, EXIFtool은 매우 잘 작동합니다.
메타데이터 표시
exiftool photo.jpg
모든 *.jpg 파일에 대한 메타데이터 표시
참고: 확장자는대소문자 구분.
exiftool -ext jpg
위와 동일하지만 하위 디렉터리를 포함합니다.
exiftool -r -ext jpg .
모든 메타데이터 제거
exiftool -all= -overwrite_original photo.jpg
현재 디렉터리에 있는 모든 *.jpg 파일의 모든 메타데이터를 제거합니다.
exiftool -all= -overwrite_original -ext jpg
위와 동일하지만 하위 디렉터리를 포함합니다.
exiftool -all= -r -overwrite_original -ext jpg .
현재 디렉터리에 있는 *.jpg 파일의 모든 GPS 메타데이터를 제거합니다.
exiftool -gps:all= *.jpg
답변4
MD5 대신 ImageMagick을 사용 identify
하여서명이미지 파일의. 동일한 서명을 가진 파일을 찾으십시오. 서명을 공유하는 파일은 동일한 내용을 갖습니다.
예를 들어 파일 a.png
, b.png
및 c.png
은 MD5 체크섬이 다르기 때문에 서로 다릅니다.
$ md5sum *
a9ee60d8237a4b3f6cdd6e57c24b1caf a.png
e8661c4fd7761984a74945e273fd4d09 b.png
21c808d62ff9c7675c1f9ca20d2f6578 c.png
그러나 그들은 서명을 공유합니다.
$ identify -format "%# %f\n" *
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8 a.png
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8 b.png
1c916332636b91704f212eec504c25383c90ed5d1659975a4a5895c48fe80ab8 c.png
그러므로 그들은 중복됩니다.