PHP - 使用 Imagick 将 EPS 转换为 PNG

PHP - convert EPS to PNG using Imagick


我正在尝试使用 imagick.This 将 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

函数setResolution应该在读取图像之前调用。于是

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

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