Hallo,
Wie kann man zwei Icons addieren, also übereinanderlegen?
Weiß jemand wie das geht?
Damit wäre mir sehr geholfen.
Icons addieren
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo HarryH!HarryH hat geschrieben:Wie kann man zwei Icons addieren, also übereinanderlegen?
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
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hallo,
Ich habe nun etwas raus bekommen, was funktioniert.
Hier ist der Code. Ist möglicherweise noch zu optimieren.
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
Gruß, Harry