ImageMagick:EPS画像の背景色を透過してPNGにする

2013年4月9日火曜日 - 投稿者 さい 時刻: 15:42
■もともと背景が透過しているepsの場合

convert -colorspace RGB -density 300 -quality 100 sample.eps sample.png

-colorspace RGBオプションが非常に重要です。
その他のオプションは必要なものを設定してください。

■背景が透過されておらず、指定した色を透過させる場合

白を透過させるケースが多いと思いますので、白という前提でいきます。
ただ、白は背景色でなくとも使う場合が多いので、背景を透過すると分かっている場合は#00ff00などの普段あまり使わない色あたりで背景色を塗りつぶしておくとよいと思います。
また最初にpngにしてからそのpngの背景を透過します。
※これを一発でやる方法が判りませんでした。

convert -strip -density 300 -quality 100 -profile icc:JapanColor2001Coated.icc -colorspace cmyk sample.eps -profile icc:sRGB.icc -colorspace rgb sample.png
convert -fuzz 20% -transparent "#ffffff" sample.png sample_t.png


ここで重要なのは-fuzzです。
このままでは完全に真っ白(#ffffff)の色しか透過してくれませんが、fuzzはいい感じに変換する色の範囲を広げてくれる便利オプションです。
変換する色の範囲というか、しきい値を広くしてくれます。
詳しくはImageMagick Command-line Optionsを。
http://www.imagemagick.org/script/command-line-options.php

%の数値を上げるほど、#ffffffと判定される色が増えます。
白っぽい背景はすべて透過してくれるようになりますが、上げ過ぎるとあらゆる色が透過してしまいますので、そこはバランスを見て調整して下さい。
(255、65535、あるいは4294967295の割合でパーセント指定する)
また色指定はカラーコードでなく「white」等の名称でもOKです。