Seite 1 von 1
Icons addieren
Verfasst: Mittwoch 16. April 2008, 08:14
von HarryH
Hallo,
Wie kann man zwei Icons addieren, also übereinanderlegen?
Weiß jemand wie das geht?
Damit wäre mir sehr geholfen.
Re: Icons addieren
Verfasst: Mittwoch 16. April 2008, 09:52
von gerold
HarryH hat geschrieben:Wie kann man zwei Icons addieren, also übereinanderlegen?
Hallo HarryH!
Ich weiß nicht wie es geht. Aber ich würde es zumindest so versuchen:
- Aus den Icons jeweils ein Bitmap machen
- Aus der Demo das raus suchen, was dem was ich brauche am ähnlichsten kommt. (vielleicht Alpha-Blending)
- probieren
mfg
Gerold
re
Verfasst: Mittwoch 16. April 2008, 12:50
von HarryH
Hallo,
Ich habe nun etwas raus bekommen, was funktioniert.
Hier ist der Code. Ist möglicherweise noch zu optimieren.
Code: Alles auswählen
def AddIcon2Icon(icon1, icon2, w, h):
"""
Add an icon to another icon; combine two icons
icon1 = first icon
icon2 = second icon
w = widht
h = height
"""
#convert icon1 to bitmap 1
bmp1 = wx.EmptyBitmap(w, h)
bmp1.CopyFromIcon(icon1)
img1 = wx.ImageFromBitmap(bmp1)
if not img1.HasAlpha():
img1.InitAlpha()
bmp1 = wx.BitmapFromImage(img1)
#convert icon2 to bitmap 2
bmp2 = wx.EmptyBitmap(w, h)
bmp2.CopyFromIcon(icon2)
img2 = wx.ImageFromBitmap(bmp2)
img2.InitAlpha()
bmp2 = wx.BitmapFromImage(img2)
#combine bitmaps in memory dc
dc = wx.MemoryDC(bmp1)
dc.DrawBitmap(bmp2, 0, 0)
#convert back to icon
icon = wx.NullIcon
icon.CopyFromBitmap(dc.GetAsBitmap())
return icon