【发布时间】:2012-08-30 08:13:14
【问题描述】:
使用谷歌(和这个网站)我看到了一些类似的问题,但我的问题仍然存在:
“我想画一个图像(不读取文件),能够操纵该图像中每个像素的颜色。”
我看到了另一个问题,建议在哪里做这样的事情:
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 建议的方法的方法,在链接的页面中有说明:
【问题讨论】:
-
"...不使用任何第三方模块。"为什么? Tkinter 的画布不是为逐像素管理而设计的。
-
好的,如果画布不允许快速执行此操作,我应该使用其他什么 tkinter 小部件来执行此操作?附言我修改了问题
-
Tkinter 没有什么可以快速做你想做的事。所以我再次问,为什么没有第三方模块?这似乎是不必要的限制。
-
好的,你可以链接我一些非官方模块 - 但它们必须是跨平台的
-
我在图像处理方面几乎没有经验,但主要的候选人似乎是 PIL、ImageMagic、Pycairo 和 scipy.ndimage 的 python 绑定。我知道 PIL 可以在 Windows、Mac 和 Linux 上运行,并且与 Tkinter 配合得很好。
标签: python image tkinter pixel