複数サイズのfaviconを作成するワンライナー

目次

convertコマンドの-cloneオプションを使えばワンライナーでマルチサイズ favicon を作成できる。

以前 favicon を作成する方法を書きました(注1)が、convertコマンドの-cloneオプションを使えば、もっと簡単に複数サイズのデータを持った ico ファイルを作成できる(注2)ことがわかりました。

favicon をワンライナーで作成

アイコンの元となる画像を favicon.png だとすると、次のコマンド一発で複数サイズ favicon.ico を作成できます(注3)。

convert favicon.png \
	\( -clone 0 -resize 16x16 \) \
	\( -clone 0 -resize 32x32 \) \
	\( -clone 0 -resize 48x48 \) \
	\( -clone 0 -resize 150x150 \) \
	-delete 0 favicon.ico

注意:シェルが解釈しないようにするため括弧をバックスラッシュ(円記号)でエスケープする。

このワンライナーが何をしているかというと…

  1. favicon.png を layer 0 に読み込む。
  2. 括弧内を処理して、その結果を新しい layer に置く。
  3. 括弧内では、-clone 0で layer 0 すなわち favicon.png をコピーして指定のサイズに縮小する。
  4. layer 0 の元画像を削除して、favicon.ico に合成する。

色数を制限したいときには、-colorsオプションを加えます。例えば-colors 256とすると、256 色に制限できます。

参照と注釈

  1. WEBブラウザのタブにオリジナルアイコンを表示
  2. FavIcon Web Page Link Thumbnail – ImageMagick v6 Examples – Creating Thumbnails and Framing
  3. ワンライナーですが、見やすくするために複数行に分けて書いています。