SVGのファイルサイズを小さくするツール
Adobe Illustrator や Inkscape や sodipodi などのソフトで作った SVG ファイルは、不要な要素などが含まれていたりして、けっこうサイズが大きくなったりする。
SVG というのは単なるテキストファイルなので、普通にエディタで開いて人力でチマチマ頑張ればサイズを小さくすることもできるのだけど、そういうこと (圧縮というより整形と言ったほうがいいかな) を自動でやってくれるツールがある。
使い方は簡単。
- まず、Python が入ってることを確認する。Mac OS X や Ubuntu なら最初から入ってるので問題ない。Windows の人は、頑張ってください。
- http://www.codedread.com/scour/ の一番下のほうからダウンロードする。(自分は現在の最新版の http://www.codedread.com/scour/scour-0.14.tar.gz をダウンロードした)
- ダウンロードしたファイルを展開すると、scour.py というファイルが入っているので、それを以下のように使う。
$ python scour.py -i input.svg -o output.svg
scour.py をパスの通ったディレクトリに入れておくと、
$ scour.py -i input.svg -o output.svg
とするだけでいい。
また、SVGZ (SVG をさらに GZIP で圧縮した形式) にも対応しているので、
$ scour.py -i input.svg -o output.svgz
と、拡張子を svgz にすると、自動で SVGZ にしてくれる。
どのぐらい小さくなるか
Wikipedia から適当に持ってきたファイルで試す。
これで実行すると、こんな感じになる。
% python scour.py -i Tux.svg -o Tux2.svg scour 0.14 Copyright Jeff Schiller, 2009 File: Tux.svg Time taken: 36.9666666667s Number of elements removed: 75 Number of attributes removed: 0 Number of unreferenced id attributes removed: 0 Number of style properties fixed: 26 Number of raster images embedded inline: 0 Number of path segments reduced/removed: 0 Number of bytes saved in path data: 82112 Number of bytes saved in colors: 246 Number of points removed from polygons: 0 Original file size: 303352 bytes; new file size: 204136 bytes (67.29%)
ファイル | サイズ |
---|---|
オリジナル | 303352バイト |
整形 | 204136バイト |
整形+SVGZ圧縮 | 73123バイト |
整形すると3分の2程度になる。
36秒もかかっているのがちょっと難点だけど、何度も圧縮するものでもないと思うので、問題ないと思う。
もう一つ
% python scour/scour.py -i BlankMap-Africa.svg -o Africa.svg scour 0.14 Copyright Jeff Schiller, 2009 File: BlankMap-Africa.svg Time taken: 12.2333333333s Number of elements removed: 1 Number of attributes removed: 0 Number of unreferenced id attributes removed: 0 Number of style properties fixed: 0 Number of raster images embedded inline: 0 Number of path segments reduced/removed: 15 Number of bytes saved in path data: 101377 Number of bytes saved in colors: 0 Number of points removed from polygons: 0 Original file size: 188987 bytes; new file size: 87234 bytes (46.15%)
ファイル | サイズ |
---|---|
オリジナル | 188987バイト |
整形 | 87234バイト |
整形+SVGZ圧縮 | 31668バイト |
整形だけで半分以下になった。かかった時間も12秒程。