Seite 1 von 1

[gelöst] wx.Image.Rescale / Rezize / Scale Qualität

Verfasst: Montag 4. Februar 2008, 13:53
von DocFisher
Hallo!

Da es nicht so einfach zu sein scheint, auf Mac Os X Tiger das PIL-Modul zu nutzen, versuche ich gerade, mit wx.Image Bilder zu verkleinern.
Allerdings ist die Qualität mehr schlecht als recht, gerade im Vergleich zu PIL.

Liegt das an wx.Image oder an meinem Code?

Hier die "PIL-Variante":

Code: Alles auswählen

def createImages(Bild, ItemID):
    im = Image.open(Bild)
    
    out_icon = im.resize((26, 26))
    out_pic = im.resize((400, 325))
    print "resized ", Bild

    iconpath = "./icons/e_icon" + str(ItemID) + ".png"
    picpath = "./pics/e_pic" + str(ItemID) + ".png"
    
    out_icon.save(iconpath, "png")
    out_pic.save(picpath, "png")
    print "saved"   
und hier die wx.Image-Variante:

Code: Alles auswählen

def createImages(Bild, ItemID):
    im = wx.Image(Bild, wx.BITMAP_TYPE_ANY)
    
    out_icon = im.Scale(26, 26)
    out_pic = im.Scale(400, 325)
    print "resized ", Bild

    iconpath = "./icons/e_icon" + str(ItemID) + ".png"
    picpath = "./pics/e_pic" + str(ItemID) + ".png"
    
    out_icon.SaveFile(iconpath, wx.BITMAP_TYPE_PNG) 
    out_pic.SaveFile(picpath, wx.BITMAP_TYPE_PNG)
    print "saved"  
Grüße aus Berlin, Doc

Verfasst: Montag 4. Februar 2008, 14:20
von gerold
Hallo DocFisher!

Ich habe es noch nicht ausprobiert. Aber vielleicht bringt es was, wenn du beim Skalieren den Parameter "quality" mit angibst.

Code: Alles auswählen

out_pic = im.Scale(400, 325, quality = wx.IMAGE_QUALITY_HIGH)
mfg
Gerold
:-)

Verfasst: Montag 4. Februar 2008, 14:51
von DocFisher
Hallo Gerold,

1000 Dank. sieht gut aus! Diesen Parameter habe ich in "wxPython in action" nicht gesehen. Aber vielleicht sollte ich doch ein paar mehr Internet-quellen hinzuziehen.

Vielen Dank!

Gruß, Doc