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的主要内容,如果未能解决你的问题,请参考以下文章