2013-04-23 3 views
0

Imagemagick을 배우려고하는데 php.net 문서는 끔찍한 T_T이며 내 질문에 대한 답을 찾지 못하는 것 같습니다. 사람들이 이미지를 업로드 한 다음 크기를 조정하고 EXIF ​​데이터를 잃어 버리도록하고 싶습니다.Imagemagick 크기 조절 제어 품질 및 확장

내가 현재 갖고있는 것들.

$thumbnail = new Imagick("http://4.bp.blogspot.com/-hsypkqxCH6g/UGHEHIH43sI/AAAAAAAADGE/0JBu9izewQs/s1600/luna-llena1.jpg"); 
$thumbnail->thumbnailImage(100, 100, true); 
$thumbnail->writeImage("avatar/thumbnail.jpg"); 

어떻게 저장되는 이미지 파일을 제어하나요? 사용자가 gif/png/jpg를 제출하면 이미지를 가져 와서 동일한 입력 형식으로 저장하거나 .png로 모두 변경하는 방법을 설명합니다.

답변

0

PHP.net 문서는별로 도움이되지 않습니다. 필자는 명령을 사용하여 작업하는 방법을 찾는 것이 가장 쉽다는 것을 알아 냈습니다. 그런 다음 명령을 PHP 메서드와 일치시킵니다. 조금 늦게 답장을 보내 다른 사람의 이익을 위해 또는 지금까지 알아낼 수도 있습니다.

저장하기 전에 이미지 형식을 변경하려면 writeImage 줄 앞에 추가하십시오. :

$thumbnail->setImageFormat('png'); 

그런 다음 writeImage 행의 확장명을 일치하도록 변경하십시오. 어떤 경우에는

$thumbnail->setImageCompressionQuality(40); // Adjust the number 40 

를 당신은 서면으로 압축 유형을 설정할 수 있습니다 : 당신은 압축 상수를 여기에서 찾을 수 있습니다

: http://www.php.net/manual/en/imagick.constants.phpthumbnail.png

쓰기, 품질을 변경하려면

참고 : 이것은 단지 예일뿐입니다. 이 압축은 실제로 png 파일과 작동하지 않습니다.

1

이 IMO는 imagick 축소판에 대해 최상의 결과를 만들어냅니다.

로드 사진

$img = new imagick($_FILES['Picture']['tmp_name']); 

, 썸네일 만들기 사진

$img->trimImage(0); 

떨어져 과도한 트림이 경우, 나는 'cropThumbnailImage'

$img->cropThumbnailImage(180, 180); 

설정을 사용하고 있습니다 모든 사진이 이제는 동일한 표준 형식이 될 수있는 형식

$img->setImageFormat('jpeg'); 

이 결과 썸네일 조금의 blurY의 IMO 후 100

$img->setImageCompressionQuality(100); 

로 품질을 설정합니다 JPG

$img->setImageCompression(Imagick::COMPRESSION_JPEG); 

의에 이미지 압축을 설정, 그래서 추가 약간의 선명 효과로 '더 선명하게'만듭니다. . 이 설정으로 놀고 싶지만, 나는 좋아한다.

$img->unsharpMaskImage(0.5 , 1 , 1 , 0.05);