1

在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 位数字的图标(天气任务栏样式。

4

3 回答 3

3

您可以为此使用wxPython 。

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

wxBitmap可以使用 wxMemoryDC 在内存中生成,在此处查找可以在DC 上执行的操作。

然后可以使用以下方法将此图标应用于 wxFrame(窗口)或 wxTaskBarIcon:

frame.SetIcon(icon)
于 2008-10-17T07:22:12.207 回答
0

您可能可以创建一个模仿 python 文件对象接口的对象。

http://docs.python.org/library/stdtypes.html#bltin-file-objects

于 2008-10-17T04:49:23.950 回答
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)
于 2018-03-04T17:44:55.793 回答