Pythonでwin32を使用してメモリにアイコンを作成します
質問
Pythonでメモリ内にアイコンを生成する良い方法は何ですか?今、私はpygameを使用してアイコンを描画することを余儀なくされ、それを.icoファイルとしてディスクに保存し、それからICOリソースとしてディスクからロードします...
次のようなもの:
if os.path.isfile(self.icon):
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
hicon = win32gui.LoadImage(hinst,
self.icon,
win32con.IMAGE_ICON,
0,
0,
icon_flags)
... self.iconは、作成したアイコンのファイル名です。
これをメモリ内で行う方法はありますか?編集:2桁の数字が表示されたアイコンを作成するだけです(天気タスクバースタイル。
解決
これには、 wxPython を使用できます。
from wx import EmptyIcon
icon = EmptyIcon()
icon.CopyFromBitmap(your_wxBitmap)
wxMemoryDC 、こちらは、DCで行える操作です。
このアイコンは、次を使用してwxFrame(ウィンドウ)またはwxTaskBarIconに適用できます。
frame.SetIcon(icon)
他のヒント
おそらく、Pythonファイルとオブジェクトのインターフェースを模倣したオブジェクトを作成できます。
http://docs.python.org/library/stdtypes .html#bltin-file-objects
これは私のために機能しており、wxを必要としません。
from ctypes import *
from ctypes.wintypes import *
CreateIconFromResourceEx = windll.user32.CreateIconFromResourceEx
size_x, size_y = 32, 32
LR_DEFAULTCOLOR = 0
with open("my32x32.png", "rb") as f:
png = f.read()
hicon = CreateIconFromResourceEx(png, len(png), 1, 0x30000, size_x, size_y, LR_DEFAULTCOLOR)
所属していません StackOverflow