今回の内容
今回は正方形の画像を大量に表示させるというプログラムを作ります。当ブログではそのような変なプログラムをメインに作っています。
前準備
正方形の画像が必要です。テストとしてフリー画像を適当にダウンロードしてWindowsフォトで正方形にカットします。
リンク:夜の鍛冶橋交差点の写真素材
コード
import wx import pyautogui import threading def scale_bitmap(bitmap, width, height): """ 画像のリサイズ """ image = bitmap.ConvertToImage() image = image.Scale(width, height, wx.IMAGE_QUALITY_HIGH) result = wx.Bitmap(image) return result class MyFrame(wx.Frame): def Add(self): i = self.i x = self.x TarGetSize = self.TarGetSize lbl = wx.StaticBitmap(self.p,-1,scale_bitmap(wx.Bitmap("image.jpg"),self.TarGetSize,self.TarGetSize),pos=(i*self.TarGetSize,x*self.TarGetSize),size=(TarGetSize,TarGetSize)) self.lbls.append(lbl) def __init__(self): wx.Frame.__init__(self,None,-1,"大量",style=wx.DEFAULT_FRAME_STYLE | wx.MAXIMIZE) self.p = wx.Panel(self,-1) gyou = 20 retu = 100 dlg = wx.ProgressDialog(u"しばらくお待ちください。","しばらくお待ちください。",gyou*retu) dlg.Show(True) dlg.Update(1,u"しばらくお待ちください。") self.TarGetSize = 70 self.lbls = [] bitmap = scale_bitmap(wx.Bitmap("image.jpg"),self.TarGetSize,self.TarGetSize) for x in range(gyou): for i in range(retu): TarGetSize = self.TarGetSize lbl = wx.StaticBitmap(self.p,-1,bitmap,pos=(i*self.TarGetSize,x*self.TarGetSize),size=(TarGetSize,TarGetSize)) self.lbls.append(lbl) dlg.Update(len(self.lbls),"しばらくお待ちください。\n%d/%d" %( gyou*retu,len(self.lbls))) dlg.Destroy() app = wx.App(False) f = MyFrame() f.Show(True) app.MainLoop()
実行結果
はい。本当に変なプログラムでしたがどうでしたが。
こんなものでいいので、何か要望などあれば気軽にコメントお願いします!
0 件のコメント:
コメントを投稿