2017-06-15 81 views
-1

可以將位圖/光柵圖像嵌入SVG(通過圖像標籤)。轉換(或重新壓縮)嵌入在SVG中的位圖/光柵圖像?

是否有一個工具(最好的命令行)來改變嵌入位圖的格式或壓縮?例如,我有一個帶有嵌入式PNG位圖圖像的SVG。我正在尋找一個工具,可以這樣調用

svgconvertertool -convert_embedded_pngs_to_jpg -compression high -f original.svg -out result.svg 

創建一個新的SVG類似於原來的SVG,除了所有嵌入式PNG圖像轉換爲JPG。

背景:我想減少幾個SVG的文件大小。文件大小基本上由嵌入的PNG決定,我想將其轉換爲(低質量)JPG文件。

imagemagick知道嗎?

+0

類似的問題可以在這裏找到:https://superuser.com/questions/273862/resampling-embedded-raster-images-in-svg – Jens

回答

0

由於我沒有找到工具,我寫了一個Java based solution。這可以通過運行

java -cp "«pathto»/png_to_jpg_in_svg/bin" PNG_to_JPG_in_SVG «file|folder» 

它可以處理單個SVG«文件»或可移動地包含在«文件夾»中的所有SVG。如果找到了嵌入式PNG,則將其替換爲JPG版本。由於JPG不支持透明度,因此背景設置爲白色。壓縮質量設置爲50%。

當我完成後,我發現FlorianEßer發佈了一個python script做同樣的伎倆。他的工具需要Python並使用Python Imaging Library(PIL)。

也許有使用命令行工具,如sed和ImageMagick的做的伎倆的一種方式,但我還沒有發現哪個提取工作腳本/替換嵌入文件,以便ImageMagick的可以與工作。唉,我在Inkscape中找不到合適的命令。 PS:我很驚訝有人「降低了」我的問題。在我們的例子中,我能夠將Sketch導出的SVG的文件大小減少到4倍!如果有人知道另一種工具,我會很樂意聽到它。