如何从列表中重建图像对象?

How to reconstruct an image object from a list?

我一直在尝试将图像 (.png) 分解为列表,编辑列表,然后将编辑后的图像另存为文件。

编辑图像并将其恢复到数组后,mpl.imshow(image) 正确显示新图像,但尝试将其另存为文件会导致出现空白图像。

我认为缺陷出在标记为 # <-- Estimated point of failure的那一行,但我已经研究了该命令,但找不到解决问题的方法。我已经使用 print() 检查了重建的数组,似乎没有什么异常。

任何关于如何以文件形式正确保存编辑后的图像的想法都将不胜感激。

感谢您的帮助, 洛克兰 F.

import numpy as np
import matplotlib.pyplot as mpl
from PIL import Image

# Desconstruct the image into an editable list
img = Image.open('mini.png')
my_dot_array = np.asarray(img)
my_dot_list = my_dot_array.tolist()
my_dot_list[0][0] = [30, 220, 90, 255] # <-- Attemp a small edit to a pixel in the image

# Reconstuct the image into a saved .png file
my_dot_array = np.asarray(my_dot_list)
img = Image.fromarray(my_dot_array, mode='RGBA') # <-- Estimated point of failure
img = img.save('updated_mini.png')

# Display the resulting image
mpl.imshow(my_dot_array)
mpl.show()


#print(my_dot_array)

我看你是一个行出来的。上面的行需要第二个参数 dtype=np.uint8:

my_dot_array = np.asarray(my_dot_list, dtype=np.uint8)