2013-02-12 74 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中所述找到。