java png转svg工具_关于图像:将TIFF或PNG或JPEG转换为SVG的Java API

本文探讨了如何将常见的位图格式如PNG、TIFF和JPEG转换为SVG矢量图形,并讨论了这一过程中文件大小的变化可能性。文章介绍了ImageTracer等工具的具体用法,并对比了不同情况下SVG文件相对于原图大小的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我需要将TIFF或PNG或JPEG转换为SVG。 是否可以转换为SVG。 通过将PNG / TIFF / JPEG转换为SVG,是否有机会减小尺寸?

参见stackoverflow.com/questions/1861382/convert-png-to-svg

如果原始图片不是重新格式化的矢量图像,它将不会减小尺寸。 如果PNG(或类似格式)使用高分辨率的简单平面形式,则可以,它将减小尺寸(但是PNG已经很好地压缩了平面)

Imagetracer是一个免费且开源的(公共域)库和应用程序,可能会有用。免责声明:我做到了。

从获取ImageTracer.jar

https://github.com/jankovicsandras/imagetracerjava

那么您可以从CLI像这样使用它:

java -jar ImageTracer.jar input.png outfilename output.svg ltres 1 qtres 1 pathomit 16 colorsampling 1 numberofcolors 4 mincolorratio 0.02 colorquantcycles 3 scale 0.5 simplifytolerance 0 roundcoords 0 desc 0 blurradius 5 blurdelta 20

从输入图像中获取后继的SVG,该图像也将缩小为原始大小的一半。

栅格到矢量的转换通常不会单独减小文件大小,尤其是使用SVG输出时,因为SVG是一种基于XML的详细文本格式,没有进行压缩。但这很大程度上取决于输入图像:保存为BMP时具有几百万像素分辨率的简单黑白徽标可能会从兆字节减少到千字节,但是彩色JPEG照片的SVG输出可能会从几十千字节变为兆字节。

您也可以使用Inkscape(或Potrace)进行测试:结果SVG通常大于输入图像。

看看蜡染:

http://xmlgraphics.apache.org/batik/

听起来它可能至少应该满足您的大多数要求。如果蜡染不支持某种格式,则始终可以获取一个附加库以将其读取为某些"标准"位图格式,然后使用蜡染将其转换为SVG。

谢谢保罗。 从位图转换为svg会减少图像的大小?

您要将栅格图像包装在SVG容器中,还是要将栅格跟踪到矢量?如果是后者,那么这不是一个简单的问题,但是您可以使用跟踪库来执行此操作。无法保证文件大小会减小。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值