2013-02-12 100 views
3

我試圖調整和.EPS文件保存到Imagick一個.JPEG與Imagick .JPG,調整大小.EPS和保存在PHP

我已經試過resizeImagescaleImagesetImageResolution,我已經嘗試寫入.png,但結果總是非常糟糕。我試着將壓縮質量設置爲100,並且我嘗試了各種resizeImage過濾器和模糊參數。

$imagick = new Imagick(); 
$imagick->readImage($file); 

$imagick->resizeImage($width, $height, imagick::FILTER_CATROM, 1); 

$imagick->setImageFormat('jpeg'); 

return $imagick->writeImage($name); 

有沒有我失蹤的魔法?

編輯:我讀過有關類似的問題是Ghostscript相關的問題,我已經安裝了Ghostscript端口。我如何驗證它正在工作?

回答

1

爲了記錄解決方案是通過殼執行圖像魔術:

例如,

$cmd = escapeshellcmd("convert -resize '{$width}x{$height}' -density 300 -flatten {$file} -colorspace rgb {$jpeg}"); 
exec($cmd, $out, $return_var); 
1

你必須設置你讀文件之前渲染分辨率

$imagick = new Imagick(); 
$imagick->setResolution(300, 300); 
$imagick->readImage($file); 

如果結果仍然很糟糕,這意味着ImageMagick的使用嵌入式TIFF預覽從EPS代替的實際PostScript數據。確保已安裝Ghostscript並可按照this answer中所述找到。