wxPythonで画像を大量に表示させる

2021年10月1日金曜日

Python wxPython

t f B! P L

今回の内容

今回は正方形の画像を大量に表示させるというプログラムを作ります。
当ブログではそのような変なプログラムをメインに作っています。

前準備

正方形の画像が必要です。
テストとしてフリー画像を適当にダウンロードして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()

実行結果

wxPythonで画像を大量に表示させる



はい。本当に変なプログラムでしたがどうでしたが。
こんなものでいいので、何か要望などあれば気軽にコメントお願いします!

このブログを検索

要望について

ブログのレイアウトやテーマについての提案をいただきました。現在qooqテーマを適応中です。 語尾を自動でつけるプログラムを作りたいという要望をいただきました。是非紹介したいですがどの言語でどのようなプログラムかなど、お問い合わせフォームで詳しく教えてください!

最近の出来事

最近の出来事
寿司打お勧め75位♪(練習モードだけど)

アンケート

Welcome!

「プログラミング独学ブログ」へようこそ。 Yakinyといいます。幅広い範囲で投稿していますので、ぜひ過去の記事も見てみてください!!コメントも大歓迎です!更新がとまってしまって申し訳ございません

お問い合わせ

名前

メール *

メッセージ *

QooQ