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

发布于 2016-10-24 22:13:25 字数 609 浏览 1223 评论 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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

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

评论(2

泛泛之交 2017-06-01 07:10:56

之前做过一个给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 01:30:16

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

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

或者用php的shell_exec

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文