Baiklah, saya bermain-main dengan mengubah objek gambar PIL bolak-balik ke array numpy sehingga saya dapat melakukan beberapa transformasi pixel demi pixel yang lebih cepat daripada yang PixelAccessdiperbolehkan oleh objek PIL . Saya telah menemukan cara untuk menempatkan informasi piksel dalam array numpy 3D yang bermanfaat dengan cara:
pic = Image.open("foo.jpg")
pix = numpy.array(pic.getdata()).reshape(pic.size[0], pic.size[1], 3)
Tapi sepertinya saya tidak tahu bagaimana cara memuatnya kembali ke objek PIL setelah saya melakukan semua transformasi yang luar biasa. Saya menyadari putdata()metodenya, tetapi sepertinya tidak bisa berperilaku.
pic.size[0]danpic.size[1]harus ditukar (mis.reshape(pic.size[1], pic.size[0], 3)), Karenasizeiswidth x heightataux * y, sedangkan pemesanan matriksrows x columns.