【发布时间】:2019-12-24 20:48:52
【问题描述】:
我正在尝试使用 for 循环修改图像的颜色值,然后将修改后的图像副本附加到列表中。每次我运行我的 for 循环时,我列表中的所有图像都会被修改,而不是 for 循环生成一个新副本,该副本将附加到列表的末尾。结果,所有图像最终看起来都像 for 循环的最后一次迭代。我当前的代码如下。请指教。
import PIL
from PIL import Image
from PIL import ImageEnhance
pic=Image.open("pic.gif")
pic=pic.convert('RGB')
width, height = pic.size
pics=[]
for intens in [.1, .5, .9]:
for x in range(pic.width):
for y in range(pic.height):
a = pic.getpixel((x,y))
a = (int(a[0]*intens), a[1], a[2])
pic.putpixel((x,y),a)
pics.append(pic)
【问题讨论】:
-
想想你实际创建了多少
pictures。 -
我看到我只修改了一个变量“pic”,并将该变量附加到列表“pics”中。我怎样才能将 'pic' 的副本附加到已修改并具有自己唯一变量名的 'pics' 列表中?
-
您正在尝试列出 3 个图像,其中第一个具有所有红色值除以 10,第二个具有所有红色值除以 2,第三个具有红色值乘以0.9。对吗?
-
正确!我相信我只是将同一张图片附加到列表中 3 次并修改了 3 次
标签: python-3.x python-imaging-library rgb