Windowsで使われるアイコン画像のフォーマットICOには異なるサイズの複数の画像を格納できる(WikipediaのICO)。通常アイコン画像をつくるには専用のソフトウェアが必要だけど、Pythonの画像処理用ライブラリのPillowでもつくることができる。
Windows10のWSL(Ubuntu 18.04)。
画像処理用ライブラリのPillowはpipでインストールできる。
作り方は簡単で、用意した画像をPillowで読み込んで、それをICOフォーマットで保存するだけ。デフォルトでは(16, 16)、(24, 24)、(32, 32)、(48, 48)、(64, 64)、(128, 128)、(256, 256)のサイズの画像のうち、オリジナル画像サイズを超えないサイズの画像が含まれるicoファイルが作成される。
今回は、ICOOON MONOからダウンロードしたりんごのフリーイラストのPNGをアイコンファイルに変換する。マイクロソフトのIconsによると、アプリ用のアイコンサイズは16x16、24x24、32x32、48x48、64x64の5サイズなので、以下の64x64の画像をダウンロードした。
環境
Windows10のWSL(Ubuntu 18.04)。
Pillowのインストール
画像処理用ライブラリのPillowはpipでインストールできる。
Pillowでアイコン画像を作成
作り方は簡単で、用意した画像をPillowで読み込んで、それをICOフォーマットで保存するだけ。デフォルトでは(16, 16)、(24, 24)、(32, 32)、(48, 48)、(64, 64)、(128, 128)、(256, 256)のサイズの画像のうち、オリジナル画像サイズを超えないサイズの画像が含まれるicoファイルが作成される。
今回は、ICOOON MONOからダウンロードしたりんごのフリーイラストのPNGをアイコンファイルに変換する。マイクロソフトのIconsによると、アプリ用のアイコンサイズは16x16、24x24、32x32、48x48、64x64の5サイズなので、以下の64x64の画像をダウンロードした。

画像ファイルをICOフォーマットに変換するコードは以下の通り。引数として画像ファイル名を指定する。
作成したICOファイルはIrfanView+Pluginで確認できる。IrfanViewのメニューのView > Multipage images > Show page thumbnailsで、ICOファイルに含まれる複数サイズを同時に表示可能。
import sys
import os
from PIL import Image
def iconmaker():
argvs = sys.argv
if len(argvs) != 2:
print('Usage: python3 {} [Image file]'.format(argvs[0]))
sys.exit();
ifilename = argvs[1]
basename = os.path.splitext(ifilename)[0]
try:
img = Image.open(ifilename)
# 拡張子としてicoを指定するとicoフォーマットになる
img.save(basename + '.ico')
except IOError as e:
print(e)
if __name__ == '__main__':
iconmaker()
作成したICOファイルはIrfanView+Pluginで確認できる。IrfanViewのメニューのView > Multipage images > Show page thumbnailsで、ICOファイルに含まれる複数サイズを同時に表示可能。
0 件のコメント:
コメントを投稿