ウェブエンジニア珍道中

日々の技術的に関する経験を書いていきます。脱線もしますが助けになれば幸いです。

ImageMagickを使ってPSDからpngの一枚絵を生成するコマンドについて

PSDからpngとかの画像を生成したい時ってありますよね?

僕はありません。

が、仕事で使ったので書き溜めておきます。

convertコマンドはImageMagickの7系からmagickコマンドに変わったりしているので、適宜変えて下さい。

コマンド

hoge.psd から hoge.pngを作ると仮定します。

convert -strip hoge.psd[0] hoge.png

これでpsd内のレイヤを重ねた一枚絵を吐き出してくれます。楽ちんですね。

-stripは無くても動くのですが、これがまた結構重要というかあると便利なものです。

psdによっては吐き出されるpngファイルに圧縮されたテキストデータだかメタデータが仕込まれることがあって、20MBのpng画像なんてものが出来上がる場合があります。チャンクとかpngの中身の話になってくるのでここでは省略しますが、画像として機能するには不要な情報が入っています。

ImageMagickは変換する際にいらない情報を省いてくれるので、特に必要なければ-stripオプションをつけることをおすすめします。

おまけ

「いらない情報付きのpng作っちゃったから消したいんですけど!!!!」って時は

mogrify -strip hoge.png

って打つとhoge.pngから不要な情報を省いてくれます。

mogrifyはImageMagickをインストールすると使えるようになるもう一つのコマンドでconvertとの違いはファイルを上書きしてくれる点にあります。

今回でいうと、hoge.pngを作って上書きしてます。直接変換してくれてるようなもんです。

ちなみに

mogrify -strip *.png

なんて打つと大量不要データ破壊するマン(語彙力)になれます。