ベクター形式であるSVG形式の画像ファイルをPNG形式に変換する方法のメモ。Windows 10で確認済み。

数枚の場合はInkscapeを使ってGUIでファイルをインポート・エクスポートすればできるが、大量(数十枚〜)にある場合はコマンドラインでバッチ処理したくなる。

その場合はInkscapeを使ってコマンドラインで変換処理をおこなえる。以下の形式でSVG形式からPNG形式にファイルを変換する。

Inkscape 0.92の場合

>inkscape -z -w (ピクセル単位での幅) -f (SVG画像ファイル) -e (PNG画像ファイル)

例えばSVGファイル MyImage.svg を幅 300px でPNGファイル MyImage.png に変換する場合は以下の様にする。

>inkscape -z -w 300 -f MyImage.svg -e MyImage.png

あとは適当なスクリプトからこのコマンドを実行するだけ。

各オプションの意味は以下の通り

  • -z, --without-gui : InkscapeをGUI無しで実行
  • -w, --export-width=WIDTH : 出力画像の幅をピクセル単位で指定
  • -f, --file=FILENAME : 入力SVGファイル指定
  • -e, --export-png=FILENAME : 出力PNGファイル指定

Inkscape 1.0.2の場合

>inkscape -w (ピクセル単位での幅) -p (SVG画像ファイル) -o (PNG画像ファイル)

例えばSVGファイル MyImage.svg を幅 300px でPNGファイル MyImage.png に変換する場合は以下の様にする。

>inkscape -w 300 -p MyImage.svg -o MyImage.png

あとは適当なスクリプトからこのコマンドを実行するだけ。

各オプションの意味は以下の通り

  • -w, --export-width=WIDTH : 出力画像の幅をピクセル単位で指定
  • -p, --pipe : 入力SVGファイル指定
  • -o, --export-filename=EXPORT-FILENAME : 出力PNGファイル指定

オプションの確認

全オプションを確認したい場合はhelpオプションで可能。メッセージがUnicode化されていてコマンドプロンプトの場合は「chcp 65001」を実行しておかないと文字化けする場合がある。

>chcp 65001
>inkscape --help

参照

Inkscape - オプション一覧

2021/6/10:更新