views:

251

answers:

2

What's a good way to generate an icon in-memory in python? Right now I'm forced to use pygame to draw the icon, then I save it to disk as an .ico file, and then I load it from disk as an ICO resource...

Something like this:

    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)

...where self.icon is the filename of the icon I created.

Is there any way to do this in memory? EDIT: All I want to do is create an icon with a 2-digit number displayed on it (weather-taskbar style.

A: 

You can probably create a object that mimics the python file-object interface.

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

monkut
+2  A: 

You can use wxPython for this.

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

The wxBitmap can be generated in memory using wxMemoryDC, look here for operations you can do on a DC.

This icon can then be applied to a wxFrame (a window) or a wxTaskBarIcon using:

frame.SetIcon(icon)
Toni Ruža