为了账号安全,请及时绑定邮箱和手机立即绑定

用PHP将SVG图像转换为PNG

用PHP将SVG图像转换为PNG

PHP
倚天杖 2019-10-13 12:08:09
用PHP将SVG图像转换为PNG我正在做一个网络项目,它涉及到一个基于一组数据的动态生成的美国地图,对不同的状态进行着色。这个SVG文件给了我一个很好的美国空白地图,很容易改变每个州的颜色。困难在于IE浏览器不支持SVG,因此为了使用SVG提供的方便语法,我需要将它转换为JPG。理想情况下,我希望只使用GD2库,但也可以使用ImageMagick。我完全不知道该怎么做。任何允许我动态改变美国地图上各州颜色的解决方案都将被考虑。关键是它是很容易改变颜色的动态和它是跨浏览器。仅限PHP/Apache解决方案。
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

您提到这样做是因为IE不支持SVG。

好消息是IE是吗?支持矢量图形。好的,所以它是一种叫做VML的语言,只有IE支持,而不是SVG,但是它在那里,你可以使用它。

GoogleMaps等将检测浏览器功能,以确定是为SVG服务还是为VML服务。

然后是拉斐尔图书馆,它是一个基于Javascript浏览器的图形库,它支持SVG或VML,这同样取决于浏览器。

另一个可能有助于:SVGWeb.

所有这一切意味着,您可以支持您的IE用户,而不必求助于位图图形。

也请参阅这个问题的最上面的答案,例如:XSL将SVG转换为VML



查看完整回答
反对 回复 2019-10-14
?
撒科打诨

TA贡献1934条经验 获得超2个赞

这很容易,在过去的几周里一直在做这方面的工作。

你需要蜡染SVG工具包..下载,以及将文件与要转换为JPEG的SVG放在同一个目录中。,也要确保您先解压缩它。

打开终端,运行以下命令:

java -jar batik-rasterizer.jar -m image/jpeg -q 0.8 NAME_OF_SVG_FILE.svg

它应该输出SVG文件的JPEG。真的很容易。您甚至可以将它放在循环中并转换负载的SVG,

import os

svgs = ('test1.svg', 'test2.svg', 'etc.svg') for svg in svgs:
    os.system('java -jar batik-rasterizer.jar -m image/jpeg -q 0.8 '+str(svg)+'.svg')



查看完整回答
反对 回复 2019-10-14
  • 3 回答
  • 0 关注
  • 762 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信