Seite 1 von 1
Bitmap verkleinert darstellen
Verfasst: Samstag 15. Januar 2005, 14:12
von b.me
Hey Guys!
Ich möchte ein Bitmap in einem Panel anzeigen lassen (mache es im mom als Test mit wxStaticBitmap), jedoch soll es verkleinert dargestellt werden. Leider finde ich keine passende Funktion, um dies zu bewerkstelligen.
Könnt ihr mir helfen? Grüße, b.me
Verfasst: Freitag 11. Februar 2005, 12:24
von 2bock
Hi b.me.
Ich hab mal ein Codebeispiel gefunden. sieht nicht schön aus und ist nicht gut programmiert, aber vielleicht hilft es Dir weiter.
Code: Alles auswählen
#!/usr/bin/env python2.3
import wx, os
class TestFrame(wx.Frame):
def __init__(self,parent, id,title,position,size):
wx.Frame.__init__(self,parent, id,title,position, size)
self.jpgs = GetJpgList(".\Images") # get all the jpegs in the Images directory
self.CurrentJpg = 0
self.ThumbSize = (200,200)
b = wx.Button(self, -1, "Display next")
wx.EVT_BUTTON(self, b.GetId(), self.DisplayNext)
self.Image = wx.StaticBitmap(self, -1, wx.EmptyBitmap(*self.ThumbSize))
self.DisplayNext(None)
box = wx.BoxSizer(wx.VERTICAL)
box.Add(b, 0, wx.CENTER|wx.ALL,10)
box.Add(self.Image, 0)
box.Fit(self)
self.SetAutoLayout(True)
self.SetSizer(box)
wx.EVT_CLOSE(self, self.OnCloseWindow)
def DisplayNext(self,event):
Img = wx.Image(self.jpgs[self.CurrentJpg], wx.BITMAP_TYPE_JPEG).Scale(*self.ThumbSize)
self.Image.SetBitmap(wx.BitmapFromImage(Img))
self.CurrentJpg += 1
if self.CurrentJpg > len(self.jpgs) -1:
self.CurrentJpg = 0
def OnCloseWindow(self, event):
self.Destroy()
def GetJpgList(dir):
jpgs = [f for f in os.listdir(dir) if f[-4:] == ".jpg" or f[-4:] == ".JPG" or f[-4:] == ".jepg"]
print "JPGS are:", jpgs
return [os.path.join(dir, f) for f in jpgs]
class App(wx.App):
def OnInit(self):
wx.InitAllImageHandlers()
frame = TestFrame(None, -1, "wxBitmap Test", wx.DefaultPosition,(550,200))
self.SetTopWindow(frame)
frame.Show(True)
return True
if __name__ == "__main__":
app = App(0)
app.MainLoop()
viel Erfolg
Greetz from 2bock