Создать иконку в памяти с win32 в python - PullRequest
0 голосов
/ 17 октября 2008

Какой хороший способ генерировать значок в памяти в 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 - имя созданного мной значка.

Есть ли способ сделать это в памяти? РЕДАКТИРОВАТЬ: все, что я хочу сделать, это создать значок с отображением двузначного числа (стиль Weather-Taskbar.

Ответы [ 3 ]

2 голосов
/ 17 октября 2008

Для этого вы можете использовать wxPython .

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

wxBitmap можно сгенерировать в памяти с помощью wxMemoryDC , посмотрите здесь для операций, которые вы можете выполнять на DC.

Этот значок затем можно применить к wxFrame (окну) или wxTaskBarIcon, используя:

frame.SetIcon(icon)
0 голосов
/ 04 марта 2018

Это работает для меня и не требует 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)
0 голосов
/ 17 октября 2008

Возможно, вы можете создать объект, который имитирует интерфейс файлового объекта python.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...