我正在尝试使用Python图像库加载一个GIF,然后复制它,这样我就不会对原始文件进行操作。我的代码如下:
import sys
from PIL import Image
from PIL import GifImagePlugin
inputimg = Image.open(sys.argv[2])
outputimg = inputimg.copy()
print (inputimg.n_frames)
print (outputimg.n_frames)
当运行这段代码时,我会得到这样的结果:
318
Traceback (most recent call last):
File "colorcorrect.py", line 20, in <module>
print (outputimg.n_frames)
AttributeError: 'Image' object has no attribute 'n_frames'
因此,很明显,outputimg
没有n_frames
,因此Image.copy()
没有考虑到原始图像是GIF的事实,并且在运行时实际上是在丢失数据。
在保留所有元数据的情况下,创建原始图像的深层副本的推荐方法是什么?
编辑:为了澄清,我的目标如下:加载一个GIF,并在该GIF的副本上执行更改,以将其作为单独的GIF写入磁盘。输出将是一个文件,其中的更改与输入文件不同。
发布于 2020-12-05 18:55:28
相反,您可以使用一种简单的方法,即使用shutil:
import shutil
from PIL import Image
one='original.gif'
two='duplicate.gif'
shutil.copy(one, two)
img1=Image.open(one)
img2=Image.open(two)
print(img1.n_frames,img2.n_frames)
https://stackoverflow.com/questions/65160756
复制相似问题