【问题标题】:Resizing .eps and Saving as .jpg with Imagick in PHP在 PHP 中使用 Imagick 调整 .eps 的大小并另存为 .jpg
【发布时间】:2013-01-28 03:35:54
【问题描述】:

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

【问题讨论】:

    标签: php jpeg imagick eps


    【解决方案1】:

    为了记录,解决方案是通过 shell 执行图像魔法:

    例如

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

    【讨论】:

      【解决方案2】:

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

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

      如果结果仍然很糟糕,则意味着 ImageMagick 正在使用来自 EPS 的嵌入 TIFF 预览,而不是实际的 PostScript 数据。确保 Ghostscript 已安装并且可以按照this answer 中的说明找到。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-23
        • 2021-12-09
        • 2012-04-01
        • 2021-07-20
        • 2023-03-16
        • 1970-01-01
        • 2015-11-03
        • 2013-04-01
        相关资源
        最近更新 更多