【发布时间】:2018-11-30 10:16:41
【问题描述】:
我正在使用生成的 .png 文件通过imageio 模块制作 gif。尽管 .png 文件是按数字顺序排序的,但生成的 .gif 动画并不遵循此顺序。是什么原因?
到目前为止,这是我的代码:
png_dir='png'
images=[]
for file_name in os.listdir(png_dir):
if file_name.endswith('.png'):
file_path = os.path.join(png_dir, file_name)
images.append(imageio.imread(file_path))
imageio.mimsave('movie.gif', images, duration=1)
.png 文件就像file_01.png, file_02.png ... file_099.png
为什么生成的 gif 与 .png 文件的顺序不同?
提前感谢您的帮助!
【问题讨论】:
-
补零时需要相同的位数才能使其工作。你应该使用
file_001.png,file_002.png...file_010.png,file_011.png...file_099.png -
我期待这样的评论。实际上这些 .png 文件是通过循环自动创建的,所以我无法控制它们的位数。 @Mike Scotty 的下一条评论显示了一个更好的解决方案
-
这是不正确的 - 在制定文件名时,您确实可以控制数字的格式 - 例如,您可以使用
%04d作为格式。 -
感谢您的指点!实际上,随着我的 png 文件数量的增加,我将编号从序列号更改为日期。
标签: python png animated-gif python-imageio