画像をmakeicnsでICNSファイルに変換する

Mac のアプリケーションバンドルで使う .icns ファイルは単一サイズならプレビューアプリケーションで作ったり、マルチサイズなら Img2icns で作ったりしていますが、MacPorts でフラフラしてたら makeicns というアプリケーションを発見しました。

makeicns はコマンドラインですべての種類の画像ファイルを icns に変換してくれるようです。

This program lets you convert all kinds of images to Apple icns format on the command line.

まずは makeicns のインストール

bash
$ sudo port install makeicns

使い方サンプルを読みませう。作りたいサイズを指定するか、入力ファイルを指定して除外(他形式に変換?)したいサイズを指定するようです。

bash
$ makeicns

…

Examples:

  makeicns -512 image.png -32 image.png
      Creates image.icns with only a 512x512 and a 32x32 variant.

  makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns
      Creates outfile.icns with sizes 512, 256, 128, and 16 containing data
      from myfile.jpg and with size 32 containing data from otherfile.png.

Finder 上で画像ファイルを icns に変換するために Automator でサービスを作成。入力の画像ファイル判定は面倒だったので Automator のアクションを使用。

あとはいつものようにシェルスクリプトで処理。

bash
for f in "$@"
do
    /opt/local/bin/makeicns -in "$f" -out "$f".icns
done && afplay "/Applications/iChat.app/Contents/Resources/File Transfer Complete.aiff"

ソースが 256x256 であれば、若干ぼやけるけど 512x512 も作成してくれるみたい。

最近のアイコン配布サイトは PNG 以外にも ICNS 形式も配布してくれているので出番は少ない…かも。

Trackback