Я пытаюсь конвертировать EPS в PNG изображения с помощью imagick. Это код, который я использую.
$ 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 ($ путь); $ image-> setBackgroundColor (new ImagickPixel ('transparent')); $ Image-> setResolution (300300); $ image-> scaleImage (600, 270); $ Image-> setImageFormat ( "PNG"); $ Image-> writeImage ($ save_path);
но прозрачность не работает, я получил изображение с белым фоном ( Изображение результата ). и когда мы масштабируем изображение, оно теряет четкость
Любая идея ?
Вот мой файл eps https://drive.google.com/open?id=0Bwq4DvGGbHVfT0FYTE94WW5GTnc
Функция setResolution должен быть вызван перед чтением изображения. таким образом
$image = new Imagick();
$image->setResolution(1200, 1200);
$image->readImage($path);
должен сделать это. Что касается прозрачности, можете ли вы попытаться получить ввод в виде sRGB вместо CMYK? Если я сначала преобразовать входной файл в PDF с epstopdf
а затем использовать этот преобразованный файл в сценарии PHP, он создает прозрачный файл PNG.
Других решений пока нет …