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 文件。
我正在尝试使用 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 文件。