今回の内容
今回は正方形の画像を大量に表示させるというプログラムを作ります。当ブログではそのような変なプログラムをメインに作っています。
前準備
正方形の画像が必要です。テストとしてフリー画像を適当にダウンロードして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 件のコメント:
コメントを投稿