首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用PIL制作一个GIF的深度拷贝?

如何用PIL制作一个GIF的深度拷贝?
EN

Stack Overflow用户
提问于 2020-12-06 02:53:43
回答 1查看 45关注 0票数 0

我正在尝试使用Python图像库加载一个GIF,然后复制它,这样我就不会对原始文件进行操作。我的代码如下:

代码语言:javascript
运行
复制
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)

当运行这段代码时,我会得到这样的结果:

代码语言:javascript
运行
复制
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写入磁盘。输出将是一个文件,其中的更改与输入文件不同。

EN

回答 1

Stack Overflow用户

发布于 2020-12-06 02:55:28

相反,您可以使用一种简单的方法,即使用shutil:

代码语言:javascript
运行
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65160756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档