我遇到了由PHP Imagick库将SVG转换为图像的问题。 以下是我的代码:
$svg = 'version="1.0" encoding="UTF-8" standalone="no"?>
';
$im = new Imagick();
$im->readImageBlob($svg);
$im->setImageFormat("jpeg");
$im->writeimage($attached_file);
$im->clear();
$im->destroy();
,结果是一个只有白色背景的图像。没有SVG显示的任何其他图像。
如果我将Text标记放入SVG字符串中,则只有文本以白色背景呈现。图像仍然缺失。
我已经安装了php5-Imagick、libxml2、Librsvg2-bin
是否需要安装其他扩展才能获得正确的结果? 或者我的代码中有什么问题?
我找到了解决方法。我使用base64镜像内容安装镜像路径。
$svg = '
';
function imageToBase64($path) {
$type = pathinfo($path, PATHINFO_EXTENSION);
$data = file_get_contents($path);
return 'data:image/' . $type . ';base64,' . base64_encode($data);
}
如果可能的话,可以使用本地图像或Web URL。
这篇关于Imagick SVG无法加载图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持吉威生活!
[英文标题]Imagick SVG cannot load the image
声明:本媒体部分图片、文章来源于网络,版权归原作者所有,如有侵权,请联系QQ:330946442删除。