Python:将 GIF 帧转换为 PNG

2024-04-12

我对 python 很陌生,试图用它来将 GIF 的帧分割成 PNG 图像。

# Using this GIF: http://www.videogamesprites.net/FinalFantasy1/Party/Before/Fighter-Front.gif

from PIL import Image

im = Image.open('Fighter-Front.gif')
transparency = im.info['transparency'] 
im.save('test1.png', transparency=transparency)

im.seek(im.tell()+1)
transparency = im.info['transparency'] 
im.save('test2.png', transparency=transparency)

# First frame comes out perfect, second frame (test2.png) comes out black,
# but in the "right shape", i.e. 
# https://i.stack.imgur.com/5GvzC.png

这是特定于我正在处理的图像还是我做错了什么?

Thanks!


我不认为你做错了什么。在这里查看类似的问题:GIF动画问题 http://code.activestate.com/lists/python-image-sig/5245/。似乎没有正确处理后面帧的调色板信息。以下对我有用:

def iter_frames(im):
    try:
        i= 0
        while 1:
            im.seek(i)
            imframe = im.copy()
            if i == 0: 
                palette = imframe.getpalette()
            else:
                imframe.putpalette(palette)
            yield imframe
            i += 1
    except EOFError:
        pass

for i, frame in enumerate(iter_frames(im)):
    frame.save('test%d.png' % i,**frame.info)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:将 GIF 帧转换为 PNG 的相关文章

  • pexpect 和 ssh:如何在 su - root -c 之后格式化一串命令

    我正在尝试迭代服务器和密码列表来更改一组服务器上的 sshd 配置 以便我可以使用无密码 SSH 密钥通过 root 登录 运行命令 我可以在 bash 中轻松完成此操作 但我正在尝试学习 Python 并且 显然 希望放弃手动输入密码 这
  • 按位置对 MultiIndex pandas DataFrame 进行切片

    我目前正在尝试按位置对具有三个级别的多索引数据帧进行切片 我正在使用熊猫 19 1 Level0 Level1 Level2 Value 03 00368 A Item111 6 9 03 00368 A Item333 19 2 03 0
  • 根据列中的条件将 Pandas 数据框拆分为多个数据框

    为了为 ML 任务正确准备数据 我需要能够将原始数据帧拆分为多个较小的数据帧 我想要获取上面的所有行 包括 BOOL 列的值为 1 的行 对于每次出现的 1 即 n 个数据帧 其中 n 是 1 出现的次数 数据样本 df pd DataFr
  • 如何使用 c 使用 libpng 更改 png 图像的 RGB 值?

    更改 png 图像的 rgb 值的推荐方法是什么 现在我正在使用示例代码来查看 libpng 的工作方式 它只打开一个 png 图像并写入另一个 png 图像 但是我想更改这个新图像的 RGB 值 使其变为全蓝色 绿色或红色 无论我选择什么
  • 非常大的数据集的余弦相似度

    我在计算大量 100 维向量之间的余弦相似度时遇到问题 当我使用from sklearn metrics pairwise import cosine similarity I get MemoryError在我的 16 GB 机器上 每个
  • 在 Python 中读取 .docx 文件以查找删除线、项目符号和其他格式

    任何人都可以帮助我在使用 python docx 的 Python 中识别 docx 文件中的段落是否包含带有删除线格式的文本 即它出现但被划掉 或者在开头有一个项目符号点 我正在尝试编写一个脚本来识别文档中的结构并解析内容 到目前为止 我
  • python 使用 shapefile 掩码 netcdf 数据

    我正在使用以下软件包 import pandas as pd import numpy as np import xarray as xr import geopandas as gpd 我有以下存储数据的对象 print precip d
  • 在 Python、Django 中下载的文件始终为空

    我在 Django 中使用以下视图来创建文件并使浏览器下载它 def aux pizarra request myfile StringIO StringIO myfile write hello response HttpResponse
  • Snakemake - 无法从输出文件中确定输入文件中的通配符

    我对snakemake很陌生 而且对python也不太熟悉 所以抱歉 这可能是一个非常基本的愚蠢问题 我目前正在构建一个管道来分析一组 bamfilesatlas https bitbucket org phaentu atlas wiki
  • Matplotlib 行高表属性

    我已经尝试了我能找到的所有命令和文档 如何在这里设置行的高度 from pylab import Create a figure fig1 figure 1 ax1 1 fig1 add subplot 111 Add a table wi
  • 如何设置 1dCNN+LSTM 网络(Keras)的输入形状?

    我有以下想法要实施 Input gt CNN gt LSTM gt Dense gt Output 输入有 100 个时间步长 每个步长有一个 64 维特征向量 A Conv1D层将在每个时间步提取特征 CNN 层包含 64 个滤波器 每个
  • 屏幕截图中低分辨率文本的 OCR

    我正在编写一个 OCR 应用程序来从屏幕截图图像中读取字符 目前 我只关注数字 我的方法部分基于这篇博文 http blog damiles com 2008 11 basic ocr in opencv http blog damiles
  • 如何在 Pandas 中叠加“一天”内的数据进行绘图

    我有一个数据框 里面有一些 更有意义 数据格式如下 In 67 df Out 67 latency timestamp 2016 09 15 00 00 00 000000 0 042731 2016 09 15 00 16 24 3769
  • admin.py 用于项目,而不是应用程序

    如何指定项目级别admin py 我前段时间问过这个问题 但由于该问题缺乏活动 我刚刚获得了风滚草奖 gt Project 设置 py admin py 这就是我想要开始工作的 App admin py 我知道该怎么做 例如 admin a
  • 应用函数创建以多列作为参数的字符串

    我有一个像这样的数据框 name size type av size type 0 John 23 Qapra 22 1 Dan 21 nuk neH 12 2 Monica 12 kahless 15 我想用一个句子创建一个新列 如下所示
  • Django ORM 是否具有与 SQLAlchemy 的混合属性等效的功能?

    In SQL炼金术 http docs sqlalchemy org en rel 0 7 index html a 混合属性 http docs sqlalchemy org en rel 0 7 orm extensions hybri
  • 安装轮子后安装后脚本

    Using from setuptools command install import install 如果我运行 我可以轻松运行自定义安装后脚本python setup py install 这是相当微不足道 https stackov
  • Python 正则表达式 findall

    我正在尝试使用 Python 2 7 2 中的正则表达式从字符串中提取所有出现的标记单词 或者简单地说 我想提取其中的每一段文本 p p 标签 这是我的尝试 regex ur u005B1P u005D u005B u002FP u005D
  • 在python中求Legendre多项式的根

    我正在编写一个程序 通过勒让德 高斯求积求解积分 n 阶求积算法需要在某一时刻找到 n 阶勒让德多项式 Pn x 的根 并将它们分配给数组 Absc 表示 横坐标 Pn 是一个 n 阶多项式 在区间 1 1 上有 n 个独立的实根 我希望能
  • Keras 导入错误 Nadam

    我在尝试导入 Keras 模块 Nadam 时遇到导入错误 gt gt gt from keras optimizers import Nadam Traceback most recent call last File

随机推荐