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

WP主题讨论 WP主题讨论 主题:1013 回复:2239

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

灵芸 发布于 2016-10-24 字数 633 浏览 1022 回复 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;

发布评论

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

支持 Markdown 语法,需要帮助?

评论(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");
?>