【发布时间】:2020-06-26 04:18:01
【问题描述】:
当我想在 2 个不同的变量中使用相同的图像 2 次时,我可以修改一个,同时将另一个作为参考。我以前是这样的:
im1 = Image.open(imagepath)
im2 = im1
我在这样做时总是遇到问题,因为如果我修改一个图像,另一个图像也会被修改。如果您愿意,可以自己尝试:
from PIL import Image
im1 = Image.open(r"D:\python\pixelartor\pixelartor_v3.1\pkg\trezor\trezor_0007.png")
im1.show()
im2 = im1
for x in range(100):
for y in range(100):
im2.putpixel((x,y),(255,0,0))
im1.show()
正如您在上面的脚本中看到的,我显示 im1,然后我修改 im2 并再次显示 im1,但第一个 im1 和第二个不一样,但我从未要求枕头修改 im1:
我认为有一种非常聪明的方法可以复制 PIL.Images,但我在网上找不到任何东西。 并且请不要告诉我打开图像 2 次,因为它在我的情况下不起作用。 我希望有人能帮帮我,因为我两周前遇到了这个问题,所以我放弃了我的项目,本周我从头开始重新启动同一个项目,同样的问题发生了,但这一次,我试图了解发生了什么。
【问题讨论】:
-
im2 = im1使它们是相同的图像。你甚至不必复制像素——检查一下,你会看到的。im2应该是一个新图像(具有相同的大小、颜色等)。 -
@usr2564301 但是如果我复制他的代码,两张图片就会改变。
-
@jizhihaoSAMA:这就是问题所在,是的。
-
这能回答你的问题吗? Python Copy Through Assignment?
-
这是 PIL 特有的或独有的部分吗?
标签: python python-imaging-library