[OP 편집 #1:Exiftool 창시자/유지관리자 Phil Harvey가 기사에서 이 질문에 대한 훌륭한 답변을 제공한 것으로 나타났습니다.ExifTool 포럼에 중복된 주제가 있습니다.]
[OP의 편집 #2:~에서Exif 도구 FAQ:Exif 도구는아니요모든 메타데이터를 제거하는 동안 파일에서 메타데이터가 완전히 제거되도록 보장합니다."작성기 제한 사항"을 참조하세요. ]
현재 백업 드라이브에 없는 사진을 이전 하드 드라이브에서 검색하고 싶습니다. 형식에는 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
identify
인쇄 시 MD5 대신 ImageMagick을 사용하세요.징후이미지 파일. 동일한 서명이 있는 파일을 찾습니다. 서명을 공유하는 파일은 동일한 내용을 갖습니다.
예를 들어, files 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
그러므로 그들은 중복됩니다.