メモリにアイコン (RGB または PIL/Pillow 経由で必要な形式) があり、それを使用したい
win32gui.Shell_NotifyIcon
が必要HICON
です。RGB ピクセルを HICON に取り込むにはどうすればよいですか?
または、それは無駄ですが、一時ファイルを介してラウンドトリップを行い、次のwin32gui.LoadImage
ように を使用して再ロードしてもかまいません。
from PIL import Image
#create example image with empty pixels:
img = Image.frombuffer("RGB", (32, 32), "\0"*32*32*3, "raw", "RGB", 0, 1)
img = img.convert("P")
img = img.resize((64, 64), Image.ANTIALIAS)
img.save("C:\\temp.ico", format="bmp")
import win32gui, win32api, win32con
flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
win32gui.LoadImage(None, "C:\\temp.ico", win32con.IMAGE_ICON, 0, 0, flags)
しかし、これは失敗します:pywintypes.error: (0, 'LoadImage', 'No error message available')
モードで読み込んLoadImage
で正しく使用できる、書き込み可能な画像フォーマットが見つかりません。そのモードのファイルのみをサポートしIMAGE_ICON
ているようです。データを として読み戻すことはできますが、結果のハンドルは では使用できません。代わりにを に変換する方法はありますか? (記憶にある)LoadImage
ICO
PNG
BMP
IMAGE_BITMAP
Shell_NotifyIcon
IMAGE
HICON