2017-03-06 100 views
0


我想将eps转换为使用imagick的png图像。这是我正在使用的代码。PHP - 使用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

功能setResolution应在读取图像之前被调用。因此,

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

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