用于将TIFF或PNG或JPEG转换为SVG的Java API

时间:2012-01-23 20:42:56

标签: image svg

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

3 个答案:

答案 0 :(得分:1)

看看Batik:

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

听起来它应该至少满足您的大部分要求。如果Batik不支持某种格式,你可以随时获得一个额外的库,将其读成一些“标准”位图格式,然后使用Batik将其转换为SVG。

答案 1 :(得分:1)

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通常比输入图像大。

答案 2 :(得分:0)

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