Я прошел через много подобных вопросов. Я не мог найти ответ на свою проблему.
у меня есть svg
образ. Я пытаюсь преобразовать его в изображение PNG.
Я использовал 300dpi
изображение как background
SVG изображения. Теперь я изменил его 600dpi
, После этого imagick
возвращает пустое изображение в формате png
$svg=path to svg;
$im = new Imagick();
$im->readImageBlob($svg);
$im->setImageFormat("png32");
$im->setImageCompressionQuality(100);
$im->resizeImage(720, 445, imagick::FILTER_LANCZOS, 1);
$base64=base64_encode($im);
$im->clear();
$im->destroy();
return 'data:image/jpg;base64,' . $base64; //returns blank png
Что мне здесь не хватает? Нужно ли включать какие-либо библиотеки?
ВЕРСИЯ PHP: 7
ВЕРСИЯ ИЗОБРАЖЕНИЯ: ImageMagick 6.8.9-9
Глядя на документацию Imagick::readImageBlob
Читает изображение из двоичной строки
это кажется неправильным методом для чтения из пути к файлу.
Вы должны либо использовать Imagick::readImage
Читает изображение из имени файла
$im = new Imagick();
$im->readImage($svg);
или конструктор Imagick::__construct
Imagick::__construct ( mixed $files )
Создает экземпляр Imagick для указанного изображения или набора изображений.
$im = new Imagick($svg);
Других решений пока нет …