PHP-php下svg格式如何转换为png?
@已知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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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();
首先在你linux安装imagemagick包后,在程序里直接执行:
<?php
`convert infile.svg outfile.png`
?>
或者用php的shell_exec
<?php
shell_exec("convert infile.svg outfile.png");
?>