PHP-php下svg格式如何转换为png?

PHP-php下svg格式如何转换为png?

灵芸 发布于 2016-10-24 字数 633 浏览 1079 回复 2

@已知imagick可以处理,只是不知道使用方法

//下面是刚找到的方法

$im = new Imagick();
//$im->readImage($path.$tempName.'.svg');
//$res = $im->getImageResolution();
//$x_ratio = $res['x'] / $im->getImageWidth();
//$y_ratio = $res['y'] / $im->getImageHeight();
//$im->removeImage();
//$im->setResolution(400, 400);
$im->readImage($path.$tempName.'.svg');
//$im->thumbnailImage (800,400,true);
$im->setImageFormat("png");
$im->writeImage($path.$tempName.".png");
header("Content-Type: image/png");
echo $im;

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泛泛之交 2017-06-01 2 楼

之前做过一个给svg图片着色然后保存为png图片的例子,这里分享下代码,也是使用来实现的,可以参考下,看看你的代码问题在哪里。

 $chinamap = '/chinamap.svg';
$im = new Imagick();
$svg = file_get_contents($chinamap );

/*着色代码,省略*/

$im->readImageBlob($svg);

/*png settings*/
$im->setImageFormat("png24");
$im->resizeImage(720, 445, imagick::FILTER_LANCZOS, 1); /*改变大小*/

/*jpeg*/
$im->setImageFormat("jpeg");
$im->adaptiveResizeImage(720, 445); /*Optional, if you need to resize*/

$im->writeImage('/chinamap.png');/*(or .jpg)*/
$im->clear();
$im->destroy();

归属感 2017-04-06 1 楼

首先在你linux安装imagemagick包后,在程序里直接执行:

<?php
`convert infile.svg outfile.png`
?>

或者用php的shell_exec

 <?php
shell_exec("convert infile.svg outfile.png");
?>