画像のピクセルを RGB 値の順に並べ替えようとしています。Pythonが初めてなので、これを試しました:
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")
40x40 ピクセル程度の小さなファイルでは静かに動作します。しかし、目標は最大 3000x2000 の解像度の写真で使用することでした。実行してみましたが、2 時間経ってもまだ終わりが見えませんでした。コードを最適化できますか、完全に間違ったことをしましたか、それとも Python はそのようなタスクには適していませんか?