我正在尝试使用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
答案 0 :(得分:0)
在阅读图像之前应调用函数setResolution。因此
$image = new Imagick();
$image->setResolution(1200, 1200);
$image->readImage($path);
应该这样做。至于透明度,你可以尝试将输入作为sRGB而不是CMYK吗?如果我首先使用epstopdf
将输入文件转换为pdf,然后在PHP脚本中使用此转换后的文件,则会生成透明的PNG文件。