php下svg格式如何转换为png

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php下svg格式如何转换为png相关的知识,希望对你有一定的参考价值。

参考技术A 之前做过一个给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();

如何在ghostscript中将svg、eps和ai转换为png

【中文标题】如何在ghostscript中将svg、eps和ai转换为png【英文标题】:How to covert svg, eps and ai to png in ghostscript 【发布时间】:2017-10-13 04:21:46 【问题描述】:

我必须将 svg、eps 和 ai 文件转换为 png 以显示缩略图。以下命令支持 ai 和 eps,但不适用于 svg。有什么方法可以使用相同的命令将这些文件格式转换为 png。

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -dDEVICEWIDTHPOINTS=1440 -dDEVICEHEIGHTPOINTS=960 -r300 -dGraphicsAlphaBits=4 -sOutputFile=outputfile.jpeg inputfile.eps

【问题讨论】:

使用imagemagick 及其convert 实用程序 感谢您的快速回复。 “imagemagick”和“convert”比 ghostscript 使用更多的内存和处理器。当我们转换多个文件时“imagemagick”或“convert”不能使用 您可以在 shell 脚本中使用一些 for 循环来多次运行 convert BTW ghostscript 是 PostScript 解释器。它不适用于处理 SVG 文件。请编辑您的问题不要评论它。您是否需要将 ghostscript 用于它不适合的任务,或者您是否需要将 .svg 文件转换为 .png 文件?不一样,你应该改进你的问题 您好像问错了问题。它应该是“将 SVG 转换为 PNG 的最佳方法是什么”,但这些问题在 SO 上是题外话,所以你需要在其他地方问他们。 【参考方案1】:

您应该使用ImageMagick 及其convert 实用程序或找到其他一些SVG 到PNG 转换器(也许inkscape 使用with --export-png=文件 --without-gui ),另请参阅this,甚至花一年时间研究 SVG 和 PNG 格式并编写自己的转换器。

ghostscript 是 PostScript 解释器。它可以处理.eps(这是针对Encapsulated PostScript)文件,因为它们是PostScript 的一些变体。由于PDF与PostScript相关,您可以要求gs输出PDF。但是SVG与PostScript完全无关,所以gs不能处理.svg文件!

您不能使用gs 转换 SVG 文件。

(学究式地,PostScript 是一种Turing complete 编程语言并具有File IO 原语,所以理论上你可以花几年时间在 PostScript 中编写自己的 SVG 到 PNG 转换器和使用gs运行它。你不想这样做)

【讨论】:

我们不能将 svg 转换为 pdf 并将 pdf 转换为 png 使用“gs” 但是如何将 SVG 转换为 PDF?可能也在使用 ImageMagick! 我不认为 Ghostscript 处理 SVG 文件。为此,您需要 Inkscape 或 RSVG。但那些可能不输出 PDF,可能只输出光栅格式。 我确实使用inkscape 来获得.pdf 输出

以上是关于php下svg格式如何转换为png的主要内容,如果未能解决你的问题,请参考以下文章

各位大神,怎么把svg格式图片用代码转换成png格式或者jpg格式

如何将wmf文件转换为svg文件

怎样把svg格式的文件转换为pdf

svg格式的图片怎么转换成PNG的?

ae转化svga格式要转换很久

将png图片转换为字体图标