2013年5月2日木曜日

実行ファイル用アイコンの作成

あいさつ


アイコンを作成し、それをpy2exeで埋め込むまでの過程のメモです。
今までSETZERを作る時は適当にアイコンエディタでアイコンを作って埋め込んでいたが、Win2kとかだとそれでよくてもVistaでは表示されないようなので、対応するようにしました。そのときに調べたことの記録です。

画像の作成


AzPainterで作成する。キャンバスは320x320で作りました。あとで調整するのでこの大きさは別にどうでもよさげ


アイコンの作成



今まで仕組みをよく知らなかったのだが、アイコンは複数の画像ファイルを束ねたものらしい。大きいアイコンとか小さいアイコンとかで表示分けがされるのは、同じ一つの画像を拡大したり縮小したりしているわけではなく、

Xpまでは
  • 大アイコン 48 × 48
  • 中アイコン 32 × 32
  • 小アイコン 16 × 16
Vistaからは
  • 特大アイコン 256 x 256
  • 中アイコン 48 x 48
  • 中アイコン 32 x 32
  • 小アイコン 16 x 16

と、それぞれに対応した画像がアイコンの中にあらかじめ含まれていて、時と場合に応じて違う画像を表示しているらしいです。ちなみに数値についてはちゃんと確かめたわけではないです。


そこで、画像ファイルからそのようなアイコンファイルを調整して作成するソフトが必要になる。いくつか試して一番よかったのがアイコン ウィザード

ライトタブと縁タブとで設定をし、画像を整形。ライトは40、縁の面取りを30にしました。



そしてアイコンファイルに含めるサイズを選択する。



Vistaに完全に対応するには特大アイコンを入れる必要があるのだろうが、ファイルサイズが数倍になってしまうので割愛。そこで32bitの48 32 16にチェックする…ことでいいはずなのだが、そうするとなぜかVistaでの中サイズアイコンの表示が荒くなってしまう。理由は不明。ただ、これは48よりも大きいアイコンを一つ追加しておけばとりあえずは起こらないようなので、64を追加しチェックを入れる。
あとは完了を押せばiconが作成される。



アイコンの埋め込み


py2exeを使って実行ファイルを作る際、ここで作ったアイコンを埋め込むだけです。

setup.py
import sys
import os

from distutils.core import setup
import py2exe
import setzer_resource

py2exe_options = {
  "compressed": 1,
  "optimize": 2,
  "bundle_files": 3}

setup(
  options = {"py2exe": py2exe_options},
  windows = [{
            "script" : "SETZER.py", "icon_resources": [(1,"py.ico")],

            "name" : setzer_resource.appname,
            "version" : setzer_resource.version,
            "description" : "",
            "company_name" : setzer_resource.copyright,
            "url" : setzer_resource.homepage,
            
            }],
  zipfile = "lib/library.zip")

PPxなら次のようなコマンドを打つ。
CD %1 %: C:\Python27\python.exe setup.py py2exe

を実行する。

0 件のコメント:

コメントを投稿