web-dev-qa-db-ja.com

python tkinter:ピクセルの扱い方?

グーグル(とこのサイト)を使用して私はいくつかの同様の質問を見ましたが、私の問題はまだここにあります:

「(ファイルを読み取らずに)画像を描画し、その画像のすべてのピクセルの色を操作できるようにしたい」

私はこのようなことをすることが提案された別の質問を見ました:

from tkinter import *
A=Tk()
B=Canvas(A)
B.place(x=0,y=0,height=256,width=256)
for a in range(256):
    for b in range(256):
        B.create_line(a,b,a+1,b+1,fill=pyList[a][b])#where pyList is a matrix of hexadecimal strings
A.geometry("256x256")
mainloop()

実際これは私の質問に答えますが...非常に遅いです。 1920x1080画像はどうすればよいですか?私の死を待つ?

だから私は上記のコードと同じように実行するために何かを求めていますが、より速い方法で

私はjsbuenoによって提案された方法を改善する方法を見つけました、それはリンクされたページで説明されています:

Photoimageが遅いのはなぜですか?

18

Canvas.create_imageの後に参照を保存することを忘れないでください。場合によっては、特にPILモジュールで作業している場合、画像が表示されていても、pythonは画像をガベージコレクションします!構文はcanvas.create_image((WIDTH/2, HEIGHT/2), image=img) canvas.image = imgのようなものです

2
EriktheRed