我需要将TIFF或PNG或JPEG转换为SVG,是否可以进行转换呢?将PNG/TIFF/JPEG转换为SVG,有没有可能减小文件大小呢?
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通常比输入图像更大。
看看Batik:
http://xmlgraphics.apache.org/batik/
听起来它应该至少满足您的大部分要求。如果Batik不支持某些格式,您可以随时获取其他库将其读入到一些“标准”位图格式中,然后使用Batik将其转换为SVG。