2012-10-04 2 views
1

PHP 및 imagick으로 축소판을 만드는 데 문제가 있습니다. 코드는 정상적으로 작동하며 축소판은 정확한 크기 등으로 생성되지만 축소판에 PDF 로고를 배치하려고하면 반투명으로 바뀝니다. 아마 InDesign에서 생성되는 PDF 파일과 관련이 있으며, 정의 된 배경이 없을 것입니다. 누구든지이 문제를 접하게 되었습니까? 아니면 그것에 대해 어떻게 해야할지 생각해 보았습니까? 배경에 흰색 캔버스를 넣으려고했으나 도움이되지 않았습니다. compositeImage 함수에 대한 채널도 지정했지만 도움이되지 않았습니다. https://dl.dropbox.com/u/13712643/Case_Study.pdf 생성 된 썸네일은 다음과 같습니다 : https://dl.dropbox.com/u/13712643/Case_Study1.jpgImagick으로 투명 PDF 파일 변환

지금까지 생산 코드 : HTTP : // pastebin.com/74CYC972

내가 함께 문제가있어 PDF 파일입니다

아이디어가 있으십니까? 도와 줘서 고마워.

+0

나는 똑같은 것을 가지고 있습니다. 내 PDF 축소판 기능과 함께 ssue! 그 고통과 배경을 투명하게 설정해도 고칠 수는 없습니다. 투명도 문제가 사라지더라도 크기를 조정하지 않고 이미지를 렌더링하면됩니다. – Josiah

답변

0

저도 같은 문제를했고 나는 여기에서 발견 된 그 Imagick::compositeImage를 사용하여 그것을 해결 : php imagick convert PNG to jpg

코드를 다음과 같이 바뀝니다.

$im = new Imagick(); 
$im->readimage($pdfFile."[$currentPage]"); 
$res = $im->getimageresolution(); 

$bg = new Imagick(); 
$bg->setresolution($res["x"],$res["y"]); //setting the same image resolution 

//create a white background image with the same width and height 
$bg->newimage($im->getimagewidth(), $im->getimageheight(), 'white'); 
$bg->compositeimage($im, Imagick::COMPOSITE_OVER, 0, 0); //merging both images 
$bg->setimageformat("png"); 

//then you can write to a file 
$bg->writeImage('white-background-pdf-image.png'); 

//or output it 
header('Content-type: image/png'); 
echo $bg;