質問

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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top