使用Imagick在PHP中调整.eps和保存为.jpg

时间:2013-02-12 18:22:46

标签: php jpeg imagick eps

我正在尝试使用Imagick调整大小并将.eps文件保存到.jpeg,

我已尝试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端口。我如何验证它是否正常工作?

2 个答案:

答案 0 :(得分:1)

对于记录,解决方案是通过shell执行image magick:

e.g。

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

答案 1 :(得分:1)

您必须在读取文件之前设置渲染分辨率

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

如果结果仍然不好,则表示ImageMagick正在使用EPS中的嵌入式TIFF预览而不是实际的PostScript数据。确保已安装Ghostscript,并且可以按this answer

中的说明找到