2008-10-17 59 views
0

在python中生成一個圖標內存的好方法是什麼?現在我不得不使用pygame繪製圖標,然後將它作爲.ico文件保存到磁盤,然後作爲ICO資源從磁盤加載它...在python中用win32在內存中創建一個圖標

類似這樣的:

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位數字的圖標

回答

2

您可以使用wxPython這一點。

from wx import EmptyIcon 
icon = EmptyIcon() 
icon.CopyFromBitmap(your_wxBitmap) 

wxBitmap可以在內存使用wxMemoryDC產生,尋找here你可以在DC上做操作。

該圖標可以被應用到wxFrame(窗口)或使用wxTaskBarIcon:

frame.SetIcon(icon) 
0

這是爲我工作的,不需要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)