我在按照RGB值的顺序对图像的像素进行排序。作为新的Python的我想这:用Python和PIL缓慢处理图像
from PIL import Image
source = Image.open("source.jpg")
colors = source.getcolors(source.size[0] * source.size[1]) #maxcolor value =256, get all colors with source.size[0] * source.size[1]
pixels = []
for i, color in colors:
pixels.extend(i * [color])
pixels.sort()
new = Image.new('RGB', source.size)
new.putdata(pixels)
new.save("new.png")
它的工作原理以及安静的周围40×40像素的小文件。但目标是在高达3000x2000分辨率的照片上使用它,我试着运行它,但两个小时后仍然没有结束。代码能够优化吗,我做了一些完全错误的事情还是Python不适合这种类型的任务?
我也试过这个,但有重建图像没有工作的问题。我试过:new.putdata(颜色),但是这返回一个TypeError。 – dan
@dan,您已经有了从颜色列表中正确构建图像的代码,这就是为什么我没有将它包含在答案中的原因。你只需要移除'sort'。 –