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
Bitmap verkleinert darstellen
-
- User
- Beiträge: 94
- Registriert: Freitag 12. September 2003, 07:58
- Wohnort: 50.9333300 / 6.3666700
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.
viel Erfolg
Greetz from 2bock
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()
Greetz from 2bock
