Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Imagick和PHP将SVG作为JPEG提供_Php_Xml_Svg_Imagemagick_Imagick - Fatal编程技术网

使用Imagick和PHP将SVG作为JPEG提供

使用Imagick和PHP将SVG作为JPEG提供,php,xml,svg,imagemagick,imagick,Php,Xml,Svg,Imagemagick,Imagick,我有一个SVG字符串,我想使用PHP作为JPEG。为此(以及更多的事情),我使用了Imagick。下面是PHP的代码: $svg = '<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Cap

我有一个SVG字符串,我想使用PHP作为JPEG。为此(以及更多的事情),我使用了Imagick。下面是PHP的代码:

$svg = '<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28.125px" height="28.125px" viewBox="0 0 28.125 28.125" style="enable-background:new 0 0 28.125 28.125;" xml:space="preserve" background="transparent"><g><g><path d="M14.063,0L1.659,6.617v0.464c0,13.979,11.906,20.767,12.026,20.834l0.378,0.21l0.377-0.21   c0.12-0.067,12.026-6.854,12.026-20.834V6.617L14.063,0z M14.063,26.329C12.13,25.096,3.445,18.92,3.214,7.544l10.849-5.787 l10.849,5.786C24.681,18.919,15.996,25.094,14.063,26.329z"/><path d="M4.004,8.001c0.416,10.17,7.652,15.812,10.059,17.412c2.407-1.601,9.643-7.241,10.059-17.411L14.063,2.636L4.004,8.001z M14,21.191c-1.067,0-1.778-0.771-1.778-1.799c0-1.047,0.731-1.799,1.778-1.799c1.048,0,1.739,0.752,1.759,1.799 C15.759,20.421,15.067,21.191,14,21.191z M15.127,16.605h-2.253l-0.456-8.954h3.144L15.127,16.605z"/></g></g></svg>';
$image = new Imagick();
$image->readImageBlob($svg);
$image->setImageFormat("jpg");
header("Content-Type: image/jpg");
echo $image;
$svg='';
$image=new Imagick();
$image->readImageBlob($svg);
$image->setImageFormat(“jpg”);
标题(“内容类型:图像/jpg”);
回波图像;
这里的问题是,执行时出现以下错误:

Fatal error: Uncaught exception 'ImagickException' with message 'no decode delegate for this image format `' @ error/blob.c/BlobToImage/358' in C:\xampp\htdocs\univar\build\makesprite.php:10 Stack trace: #0 C:\xampp\htdocs\univar\build\makesprite.php(10): Imagick->readimageblob('<?xml version="...') #1 {main} thrown in C:\xampp\htdocs\univar\build\makesprite.php on line 10

致命错误:c:\xampp\htdocs\univar\build\makesprite.php:10堆栈跟踪:#0 c:\xampp\htdocs\univar\build\makesprite.php(10):Imagick->readimageblob(“我终于找到了一个有效的组合。经过一番努力,我终于能够让下面的组合在我的机器上工作

操作系统:Windows 7 64位
PHP:5.5.6
XAMPP:1.8.3
编译器:MSVC11
架构:x86
ImageMagick:ImageMagick-6.7.7-5-Q16-windows-dll(可用)
Imagick DLL:PHP5.5.x版本自


注意:在我尝试此操作后,Apache启动时没有出现任何错误消息。我确实在名称中没有空格的目录中安装了ImageMagick(正如一些人所建议的,某些安装可能会有问题).在我的例子中,我使用windows上的Image magick v6.9将其安装到C:\imagemagick。

并在xampp/php中安装了同样的imagick dll,并将dll引用添加到php中。请仔细检查您在xampp/php中引用dll的方式。看起来,
imagick
@emcconville无法找到/加载
librsvg.dll我下载的软件包中没有dll。这就是它丢失的原因。我在哪里可以找到所有必需的dll?@emcconville非常感谢!!这是一个很大的帮助!我已经找到了其他东西。如果你发现了什么问题,你应该在自己的答案中写下你到底做了什么来修复它,并将其标记为“已接受”。这将有助于今后遇到相同问题的读者。