0

我对此很陌生,因此对任何术语滥用表示歉意。

我正在用 Python 编码。我有一个二维列表,其中包含图像中每个像素的灰度值。我已根据需要修改了这些值,现在想将它们保存到新图像中。如何从我的灰度值数组构建这个新的 jpeg?

如果可能的话,我希望它们以不会覆盖我的原始图像文件的方式保存。

我正在使用 PIL;我用两个 for 循环打开了原始文件,Image.open('filename')并在每个像素位置提取了灰度值。im.getpixel((i,j))

4

2 回答 2

1

这样的事情应该让你去(未经测试):

old_image = Image.open("old.jpg")
old_data = old_image.load()

new_image = Image.new("RGB", old_image.size)
new_data = new_image.load()

width, height = old_image.size
for x in range(width):
    for y in range(height):
        new_data[x, y] = old_data[x, y] 

new_image.save("new.jpg")
于 2013-08-13T00:19:35.533 回答
0

不过要小心 jpeg,因为 jpeg 会丢失很多数据。如果您想保留每个像素的值而不会因压缩而损失,那么您应该使用 png。有关更多信息,请参阅此问题(其中也包含您原始问题的答案):

PIL 保存时更改像素值

于 2013-08-13T01:13:05.987 回答