2008-10-23 4 views
19

저희 사이트에서는 다양한 출처에서 많은 양의 사진을 업로드합니다. 파일을 유지하기 위해exif 데이터를 이미지에 어떻게 추가합니까?

아래 크기, 우리는 mogrify을 사용하여 소스에서 모든 exif data을 제거 : 우리가 할 수 있도록하고 싶습니다 무엇

mogrify -strip image.jpg 

몇 가지 기본적인 EXIF ​​데이터를 삽입하는 것입니다 (저작권 Initrode를 , 등)이 새로운 "깨끗한"이미지에 다시,하지만이 문서를 달성 할 것이라고 아무것도 찾을 수 없습니다.

아무도이 일을 한 경험이 있습니까?

imagemagick을 통해 수행 할 수없는 경우 PHP 기반 솔루션이 가장 좋은 방법입니다.

감사합니다.

답변

13

당신은

텍스트에 다음을 추가합니다 ... 당신은 많은 수의 이미지가 특히 많은 공간을 절약 할 수 있습니다.TXT ( here에서 가져온 IPTC 태그의 형식) :

2#110#Credit="My Company" 
2#05#Object Name="THE_OBJECT_NAME" 
2#55#Date Created="2011-02-03 12:45" 
2#80#By-line="BY-LINE?" 
2#110#Credit="The CREDIT" 
2#115#Source="SOURCE" 
2#116#Copyright Notice="THE COPYRIGHT" 
2#118#Contact="THE CONTACT" 
2#120#Caption="AKA Title" 

스트립 이미지

mogrify -strip image.jpg 

에서 기존의 모든 EXIF ​​데이터가 리눅스에 이미지

mogrify -profile 8BIMTEXT:text.txt image.jpg 
+1

잘 할거야, 환호! – ConroyP

+0

주제 태그를 추가하는 구문을 알고있는 사용자는 솔루션을 업데이트하십시오. –

12

Exiftool은 정확히 일치하는 것 같습니다.

나는 그것을 시험해 보지 못했지만, 이제 배터리가 사라진 후 날짜를 재설정하는 것을 잊었 기 때문에 01/01/2074로 표시된 모든 신혼 여행 사진을 고치고 싶어합니다.

+0

감사합니다. 구멍에서 빠져 나왔어. –

6

여기에 PHP Exif Library이 필요합니다.

는 PHP EXIF ​​도서관 (PEL)는 완전히 (교환 가능한 이미지 파일 형식) 데이터 EXIF를 조작 할 수 있습니다. 디지털 카메라가 의 날짜와 시간, 셔터 속도, ISO 값 등의 이미지와 같은 에있는 데이터입니다.

PEL을 사용하면 Exif 데이터를 완전히 수정할 수 있습니다. 즉, 읽기 및 쓰기가 가능합니다. 완전히 새로운 Exif 데이터를 이미지에 추가 할 수도 있습니다. PEL 은 PHP로 완전하게 작성되었으며 은 PHP 5를 설치하는 것을 제외하고는 별다른 영향을받지 않습니다. PEL은 SourceForge에서 호스팅 된 입니다.

+0

링크가 죽었습니다. – GreenMatt

+0

PEL은 지금 github에서 호스팅됩니다. http://lsolesen.github.io/pel/ –

1

난 당신이 내가 잘못 될 수 있습니다 ... 어쨌든, EXIF ​​정보를 제거하여

을 공간을 많이 얻을 것입니다 의심하지 않지만, EXIF ​​메타 데이터 기술 (문맥) 정보를 저장하는 데 더 많은 속한다. 저작권과 같은 것들에 대해서는 IPTC를 사용해야합니다.

ImageMagick을 사용하면 분명히 할 수 있습니다. Write IPTC Data to Jpeg with ImageMagick.

5

에 신용을 추가 jhead라고하는 프로그램입니다. 이 명령으로 최소한의 EXIF ​​헤더를 추가 할 수 있습니다

jhead을 img.jpg

당신은 PEL 라이브러리를 사용하여 직접 PHP에서이 작업을 수행 할 수 있습니다
0

-mkexif. 당신은 단순히 기존의 EXIF ​​헤더를 덮어 쓰기하여이 작업을 수행 할 것

// Load image data 
$data = new PelDataWindow(file_get_contents('IMAGE PATH')); 

// Prepare image data 
$jpeg = $file = new PelJpeg(); 
$jpeg->load($data); 

// Create new EXIF-headers, overwriting any existing ones (when writing to disk) 
$exif = new PelExif(); 
$jpeg->setExif($exif); 
$tiff = new PelTiff(); 
$exif->setTiff($tiff); 

// Create Ifd-data that will hold EXIF-tags 
$ifd0 = new PelIfd(PelIfd::IFD0); 
$tiff->setIfd($ifd0); 

// Create EXIF-data for copyright 
$make = new PelEntryAscii(PelTag::COPYRIGHT, '2008-2017 Conroy'); 
$ifd0->addEntry($make); 

// Add more EXIF-data... 

// Save to disk 
$file->saveFile('IMAGE.jpg'); 

당신은 모든 지원 EXIF ​​데이터 (PelTag) in the PEL docs의 전체 목록을 찾을 수 있습니다.

관련 문제