2012-01-23 125 views
1

我有要求將TIFF或PNG或JPEG轉換爲SVG。是否有可能轉換爲SVG。通過將PNG/TIFF/JPEG轉換爲SVG,是否有機會縮小尺寸?將TIFF或PNG或JPEG轉換爲SVG的Java API

+0

請參閱http://stackoverflow.com/questions/1861382/convert-png-to-svg –

+0

如果原始圖片不是重新載入的矢量圖像,它不會縮小尺寸。如果PNG(或其他)在高分辨率下使用簡單的平板形式,那麼是的,它會縮小尺寸(但PNG已經平坦地壓縮平坦表面) – Xenos

回答

1

看看蠟染:

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

這聽起來像它可能應該至少滿足你的大部分需求。如果Batik不支持某種格式,您總是可以獲得一個額外的庫來將其讀入一些「標準」位圖格式,然後使用Batik將其轉換爲SVG。

+0

謝謝保羅。將位圖轉換爲SVG會減小圖像的大小嗎? – minil

0

你想把你的光柵圖像包裝在SVG容器中嗎,還是你想跟蹤光柵到矢量?如果後者那麼這不是一個簡單的問題,但是你可以使用一個跟蹤庫來做到這一點。沒有保證文件大小會減少。

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通常大於輸入圖像。