2016-06-13 3 views
1

나는 기존의 EXIF ​​태그를 제거하고 다음이 필수 코드를 사용하여 저작권 문자열을 적용하기 위해 노력하고있어 :PHP에서 ImageMagick/Imagick을 사용하여 저작권 문자열을 JPEG에 추가 하시겠습니까?

$im = new Imagick($file); 
$im->stripImage(); 

// Embed new EXIF data 
$im->setImageProperty('EXIF:ImageDescription', $copy_string); 
$im->setImageProperty('EXIF:Copyright', $copy_string); 
//$im->setImageProperty('Exif:ImageDescription', $copy_string); 
//$im->setImageProperty('Exif:Copyright', $copy_string); 
//$im->setImageProperty('ImageDescription', $copy_string); 
//$im->setImageProperty('Copyright', $copy_string); 

$im->writeImage($file); 
$im->clear(); 
$im->destroy(); 

내가 문제가 예를 들어 사용을 찾는 데 문제가 있습니다. 매뉴얼에는 CLI 등록 정보 문자열 here이 있습니다. "퍼가기"아래의 줄은 아무런 효과가 없습니다. 우리는이 솔루션을 위해 Imagick에 머무를 것입니다. 감사.

+0

: 당신은 오히려 당신이 그냥 생성하는 템플릿을 유지하여 툴체인의 일환으로 exiftool을 계속 사용하거나 할 필요가 없습니다? 그것은 문서에서와 같습니다 (모두 대문자가 아님). –

+0

@CharlotteDunois 지금 시도했습니다. 안돼. 어쨌든 고마워. – Drakes

+1

IM이 프로필 정보를 _write_ EXIF ​​할 수 있다고 생각하지 않습니다. – emcconville

답변

2

이미 언급했듯이 Imagemagick에서는 "correct" 답변이 없도록 EXIF ​​데이터를 쓸 수 없습니다. 당신은 내가 설명한 here 아이디어를 좋아할 수도 있고 그렇지 않을 수도 있습니다. 본질적으로 이미지에 넣을 EXIF ​​데이터에 대해 "템플릿"으로 일회용 이미지를 만든 다음이를 실제 이미지 및 합성물의 기초로 사용할 수 있습니다 올바른 EXIF ​​데이터로 이미지 상단에 이미지 데이터를 저장하고 ImageMagick은 EXIF ​​데이터를 유지합니다.

그래서, 콘크리트 조건 : - exiftool을 사용이기는하지만 당신은 한 번만 해당 이미지를 만들 필요가

// Open the copyright image with the correct EXIF data 
    $cr = new Imagick('copyright.jpg'); 

    // Open the image to alter and get its size 
    $file = 'test.jpg'; 
    $im = new Imagick($file); 
    $d = $im->getImageGeometry(); 
    $w = $d['width']; 
    $h = $d['height']; 

    // Resize the copyright and composite the image over the top 
    $cr->resizeImage($w,$h,imagick::FILTER_POINT,0,0); 
    $cr->compositeImage($im,imagick::COMPOSITE_SRCOVER ,0,0); 
    $cr->writeImage($file); 

그래서, 나는 일회성 작업으로 원하는 EXIF ​​데이터와 저작권 이미지를 만든 - Copyright` :

당신이`EXIF를 시도해 봤어
# Make template copyright file 
convert -size 1x1 xc:black copyright.jpg 

# Put some EXIOF data in the template 
exiftool -copyright="2015 Copyright Captain Hackalot" copyright.jpg 
+0

나는 이것을 시험해 보았고 부분적으로 효과가 있었다. 원하는 저작권 정보가있는 매우 작은 1x1 JPEG 이미지로이 'copyright.jpg'이미지가 약 3k 크기로 나왔습니다. 위의 코드를 사용하면 작성된 파일이 훨씬 커집니다. (예 : 164kB -> 192kB, 26kB -> 49kB). Exif 데이터를 파일 크기를 최소한으로 늘려서 어떻게 추가 할 수 있습니까 (메타 데이터 용)? 압축이나 필터는 변경되지 않습니까? – Drakes

+0

원본 이미지의'getImageCompressionQuality()'을 시도한 다음'setImageCompressionQuality()'를 사용하여 출력 이미지의 품질을 동일하게 설정하십시오. –

+0

그게 그랬습니다. 감사. – Drakes

관련 문제