4 回答

TA贡献2041条经验 获得超4个赞
您已成功更改图像,但如果您想再次读取它,则需要将其写入文件:
要保存到相同的图像文件,只需执行
im.save('./data/frame398.png', ‘PNG’)

TA贡献1825条经验 获得超4个赞
当你做
r, g, b = pixx[200,200]
您正在从元组或数组中卸载像素值。所以你最好的选择是
pixel[200,200] = (0, 0, 0)
#or
pixel[200,200] = [0, 0, 0]

TA贡献1862条经验 获得超7个赞
正如@chthonicdaemon在回答中提到的,您实际上需要使用 Image.save() 保存法师。
其次,如果您想使用像素值,最好将加载的图像转换为 numpy 数组,例如,
import numpy as np
im = Image.open('./data/frame398.png')
im = np.array(im)
这使得像素操作更简单,只需注意创建原始图像的副本,例如,
im = np.array(im)
im = im.copy()
如果有时未制作副本,python 不允许分配直接值。
之后,您可以轻松更改单个值,例如,
im[0, 0, 0] = 255 # Complete RED
im[0, 0, 1] = 0 # No green
im[0, 0, 2] = 0 # No blue
至于保存图像,它也非常简单,例如,
Image.fromarray(im).save('name_of_file.png', 'PNG')
我们也获得了类似的隐写术任务,如果你有兴趣可以在这里查看完整的代码。
添加回答
举报