我正在尝试使用Imagick调整大小并将.eps文件保存到.jpeg,
我已尝试resizeImage
,scaleImage
,setImageResolution
,我尝试过写入.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端口。我如何验证它是否正常工作?
答案 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。
中的说明找到