首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PIL/Pillow制作GIF

用PIL/Pillow制作GIF
EN

Stack Overflow用户
提问于 2020-03-06 18:35:16
回答 1查看 103关注 0票数 1

我正在尝试使用PIL/Pillow将一些.png文件转换为gif。以下脚本正在工作,但正在以随机顺序添加帧。

代码语言:javascript
复制
from PIL import Image
import glob

# Create frames
frames = []
imgs = glob.glob("*.png")
for i in imgs:
    new_frame = Image.open(i)
    frames.append(new_frame)

# Save into a GIF file that loops forever
frames[0].save('globe.gif', format='GIF', 
               append_images=frames[0:], save_all=True, duration=1000, 
               loop=0, optimize=False, transparency=0)

我试着按顺序(1.png,2.png,3.png等)重命名文件,但没有成功

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2020-03-06 18:52:14

如果您重命名了以数字开头的文件,可以尝试对imgs列表进行排序。您可能需要使用一个自然的顺序,这取决于您如何命名您的文件。

基于此answer

代码语言:javascript
复制
import re

def natural_sort(l): 
    convert = lambda text: int(text) if text.isdigit() else text.lower() 
    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ] 
    return sorted(l, key = alphanum_key)

在你的代码中:

代码语言:javascript
复制
# Create frames
frames = []
imgs = glob.glob("*.png")
imgs = natural_sort(imgs)
for i in imgs:
    new_frame = Image.open(i)
    frames.append(new_frame)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60562248

复制
相关文章

相似问题

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