PHP - 使用Imagick将EPS转换为PNG

时间:2017-03-06 11:12:59

标签: php imagick image-conversion


我正在尝试使用imagick将eps转换为png图像。这是我正在使用的代码。



     $path = getcwd().'/uploads/1488/791/586/imprint_option_1A.eps';
        $save_path = getcwd().'/uploads/1488/791/586/imprint_option_2E_c.png';
        $image = new Imagick();
        $image->readimage($path);
        $image->setBackgroundColor(new ImagickPixel('transparent'));
        $image->setResolution(300,300);
        $image->scaleImage(600, 270);
        $image->setImageFormat("png");
        $image->writeImage($save_path);

但是透明度不起作用我得到了带有白色背景的图像(Result image)。当我们缩放图像时,它会失去清晰度。

有什么想法吗?

这是我的eps文件https://drive.google.com/open?id=0Bwq4DvGGbHVfT0FYTE94WW5GTnc

1 个答案:

答案 0 :(得分:0)

在阅读图像之前应调用函数setResolution。因此

 $image = new Imagick();
 $image->setResolution(1200, 1200);
 $image->readImage($path);

应该这样做。至于透明度,你可以尝试将输入作为sRGB而不是CMYK吗?如果我首先使用epstopdf将输入文件转换为pdf,然后在PHP脚本中使用此转换后的文件,则会生成透明的PNG文件。