Icons addieren

Plattformunabhängige GUIs mit wxWidgets.
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Icons addieren

Beitragvon HarryH » Mittwoch 16. April 2008, 08:14

Hallo,

Wie kann man zwei Icons addieren, also übereinanderlegen?
Weiß jemand wie das geht?

Damit wäre mir sehr geholfen.
Gruß, Harry
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Icons addieren

Beitragvon gerold » Mittwoch 16. April 2008, 09:52

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

re

Beitragvon HarryH » Mittwoch 16. April 2008, 12:50

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
Gruß, Harry

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder