微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从png创建gif:遍历图像似乎太快了,只能在调试模式下使用

如何解决从png创建gif:遍历图像似乎太快了,只能在调试模式下使用

我正试图从几个(在本例中只有5个)png文件创建一个gif图像。如果我在遍历图像的那一刻调试代码,则可以创建gif。否则执行似乎太快了。这是我的代码

img,*imgs = [Image.open(f) for f in sorted(glob.glob(png_in))]

因此,我简化了列表理解,并添加time.sleep(x)并对其进行了测试:

ImageFile.LOAD_TruncATED_IMAGES = True
imgs = []
for f in sorted(glob.glob(png_in)):
    i = Image.open(f)
    time.sleep(1)
    imgs.append(i)

然后,我不使用PIL模块,而是切换到imageio模块:

images = []
png_list = sorted(glob.glob(png_in))
for filename in png_list:
    print(f"fn: {filename}")
    images.append(imageio.imread(filename))
    time.sleep(1)
imageio.mimsave(gif_file,images)

有什么想法可能会出问题吗?例如,我收到的错误消息是:

unkNown element "blank"
    i = Image.open(f)

解决方法

感谢Mark Setchell...。我发现的问题是在执行for循环时png并没有全部存在。我正在使用openscad创建png文件,在这里我需要实现time.sleep。在调试模式下,因为速度较慢,openscad才有时间创建png的文件,因此您看不到此问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。