Mac OS XでSVGをPNGに変換するコマンドラインアプリケーション
Mac OS X上でSVGをPNGに変換できるコマンドラインプログラムはありますか?
Editです。Dylan BさんがImageMagickで良い回答をされていました。参考までに、MacPorts を使って Mac OS X に SVG サポートの ImageMagick をインストールするには、
port install imagemagick +rsvg
``` を実行してください。
Mac OS X上でSVGをPNGに変換できるコマンドラインプログラムはありますか?
Editです。Dylan BさんがImageMagickで良い回答をされていました。参考までに、MacPorts を使って Mac OS X に SVG サポートの ImageMagick をインストールするには、
port install imagemagick +rsvg
``` を実行してください。
ImageMagick ](http://www.imagemagick.org/script/binary-releases.php#macosx) は非常に汎用性の高いコマンドライン画像エディタで、GUIがあればPhotoshopに匹敵するでしょう。
以下のようなものは、インストール後に.svgを.pngに変換します。
$ convert picture.svg picture.png
元の.svgは削除されません。
このためにnode/npmを使って svgexport を作ってみました。
svgexport input.svg output.png
何もインストールしない別の方法。コマンドラインではありませんが。
1.Safariで.svgファイルを開く。
2. alt-command-iを押してインスペクタを開く。
3. <svg>
タグを右クリックし、「スクリーンショットをキャプチャ」を選択。(画像を拡大してはいけないことに注意してください。)
追伸.svg画像が小さすぎる場合に拡大するには、テキストエディタで.svgファイルを開き、メタ属性以外のすべての数字に0
を追加してみてください。これは、例えば (\d+)
を $10
から $1
にグローバル正規表現で置換することで行うことができます。
ImageMagick の convert コマンドは、他のパラメータを使って、私のためにそれをしてくれました。タスクを複数のプロセスに分割して、すべてのコアを利用する私のバッチ Bash スクリプトソリューションは以下の通りです。必要に応じて修正してください。
batchConvertToSVG.sh (引数にプロセス数を取る):
end=$(( $1 - 1 ))
for i in `seq 0 $end`;
do
echo Spawning helper $i of $end
./convertToSvgHelper.sh $i $1 &
done
convertToSvgHelper.sh:
n=$1
for file in ./*.svg; do
filename=${file%.svg}
echo converting file named $filename
test $n -eq 0 && convert -format png -resize 74 -background transparent -density 600 $file $filename.png
n=$((n+1))
n=$((n%$2))
done
SVGファイルのフォルダ全体をPNGに一括変換することができます。Inkscapeのコマンドラインインターフェイスを使って、幅80pxのpngファイルを作成してみました。
find ~/desktop/toconvert '*.svg' -exec /Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -w 80 -e "{}".png "{}" \;
pngは元の名前で保存されます。