Mac OS Xで実行される、SVGをPNGに変換できるコマンドラインプログラムはありますか?
編集:ディランBはImageMagickで良い答えを持っていました。参考として、MacPortsを使用してMac OS XにSVGサポート付きImageMagickをインストールするには、次のようにします。
port install imagemagick +rsvg
pip3 install cairosvg
Mac OS Xで実行される、SVGをPNGに変換できるコマンドラインプログラムはありますか?
編集:ディランBはImageMagickで良い答えを持っていました。参考として、MacPortsを使用してMac OS XにSVGサポート付きImageMagickをインストールするには、次のようにします。
port install imagemagick +rsvg
pip3 install cairosvg
回答:
または何もインストールせずに:
qlmanage -t -s 1000 -o . picture.svg
1000ピクセル幅のpicture.svg.pngを生成します。
OS X 10.6.3でのみテストしました。
qlmanage -t
Quick Look(Finderなど)で使用されるサムネイルを提供します。賢いアイデア。残念ながら、これらのサムネイルは、特にテキストが関係している場合、バグが多い場合があります。
rsvg-convert
@ahtiの答えのツールは、以前はうまく機能していました。
-s
オプションの後に幅と高さの両方のパラメーターを入れてもうまくいきませんでした。それでも正方形に切り取ります。とてもイライラする!
私にとって仕事に最適なツールはであることがわかったrsvg-convert
。
brewにbrew install librsvg
あり、次のように使用されます。
rsvg-convert -h 32 icon.svg > icon-32.png
(この例では、高さ32pxのpngを作成します。幅は自動的に決定されます。
convert
エラーを発行し、複雑なSVGひそかに失敗した
qlmanage
答えは、それらのすべてのために働いたが、私はしたくない白色の背景を、置きます。
rsvg-convert
と、結果の.pngのサイズは適切になりましたが、元の色ではなく、すべて黒になりました。ではqlmanage
、画像の正方形にトリミングされます。まだ解決策を探している:-(
ImageMagickは非常に汎用性の高いコマンドライン画像エディターで、GUIがあればPhotoshopに匹敵するでしょう。しかし、とにかく誰がそれらを必要とします。:P
次のようなものは、インストール後に.svgを.pngに変換します。
$ convert picture.svg picture.png
元の.svgは削除されません。
display
。
Inkscapeのコマンドラインインターフェイスを使用すると、最高の結果が得られます。
/Applications/Inkscape.app/Contents/Resources/bin/inkscape --export-png output.png -w 1024 -h 768 input.svg
良いことは、結果の画像の正確なピクセルサイズを指定できることです。密度を混乱させる必要はありません。
inkscape $(pwd)/logo.svg --export-png $(pwd)/logo.png
OK、Google Chromeをお持ちの場合、Macで簡単に実行できます。
1つの文svg
で、Webページ内の画像(html
ファイル内にある必要があります)を確認し、画像を右クリックして[画像のコピー]を選択し、プレビューアプリに貼り付けます。
手順:
svg
たとえば、ファイルをダウンロードするか、ハードドライブに保存します。somefile.svg
tmp.html
次の行を含むhtmlファイルを作成します。<img src="somefile.svg">
"File -> New from Clipboard"
File -> Save
でファイルが作成され、png
ファイルが作成されました。(または他のファイルタイプ)。これは、Mac OS X El Capitan上の現在のChrome(バージョン48.0)でテストされています。
更新:Google Chromeによって課された何らかの制限によるものかどうかはわかりません。Chrome 58.0を使用してSVGファイルを試したところ、上記の方法で小さな画像が得られました。このケースも表示される場合は、使用することもできます
<img src="somefile.svg" style="height: 82vh; margin-top: 9vh; margin-left: 9vh">
スクリーンショットを作成するのに十分な画像が画面に表示されます。たとえば、Mac を使用しCmdShift4たりCmdShift3、Macで使用したりできます。Chromeウィンドウのサイズを画面で許可されている最大サイズに変更してください。
一度に多くのことをしたい場合は、次のことができます。
mogrify -format png *.svg
その場でサイズを変更するオプションなどもあります。
mogrify
ImageMagickのパーでもあります。
phantomjsを使用してsvgをレンダリングすることもできます。利点は、基本的にヘッドレスWebKitであるため、ブラウザのようにレンダリングすることです。
ダウンロードしたら、phantomjs(バイナリ)とexamplesフォルダーのrasterizer.jsファイルが必要です。
phantomjs examples/rasterize.js Tiger.svg out.png
brew cask install phantomjs
。私のインストールでは、examplesフォルダーはパスにありました/usr/local/Caskroom/phantomjs/2.1.1/phantomjs-2.1.1-macosx/examples/
。
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
前にコメントしたように、ImageMagickはこのトリックを行います。GraphicsMagickにポイントを追加したかっただけです。これは、ImageMagickの古いフォークであり、いくつかの改良点があります(fink経由でインストールした場合の依存関係の膨張ははるかに少なくなります)。
SVGファイルのフォルダー全体をPNGに一括変換できます。Inkscapeコマンドラインインターフェイスを使用して、幅が80ピクセルのpngファイルを作成しました。
find ~/desktop/toconvert '*.svg' -exec /Applications/Inkscape.app/Contents/Resources/bin/inkscape -z -w 80 -e "{}".png "{}" \;
pngは元の名前* .pngで保存されます
何もインストールせずに、さらに別の方法。ただし、コマンドラインではありません。
<svg>
タグを右クリックして、「スクリーンショットをキャプチャ」を選択します。(画像を拡大しないでください。)PS .svgイメージが小さすぎる場合に拡大するには、テキストエディターで.svgファイルを開いて0
、メタ属性を除くすべての数値に追加してみてください。これは、(\d+)
to からのグローバルな正規表現の置換によって行うことができます$10
。ここ$1
で、たとえば、後方参照のプレースホルダーです。