Python 3.x 从PNG创建gif:在图像中循环似乎太快,只能在调试模式下工作
我正在尝试从几个(本例中只有5个)png文件创建gif图像。如果在图像循环发生时调试代码,我可以创建gif。否则,执行速度似乎太快。这是我的密码:Python 3.x 从PNG创建gif:在图像中循环似乎太快,只能在调试模式下工作,python-3.x,python-imaging-library,png,gif,python-imageio,Python 3.x,Python Imaging Library,Png,Gif,Python Imageio,我正在尝试从几个(本例中只有5个)png文件创建gif图像。如果在图像循环发生时调试代码,我可以创建gif。否则,执行速度似乎太快。这是我的密码: img, *imgs = [Image.open(f) for f in sorted(glob.glob(png_in))] 因此,我将列表展平,添加并使用time.sleep(x): 然后,我没有使用PIL模块,而是切换到imageio模块: images = [] png_list = sorted(glob.glob(png_in)) fo
img, *imgs = [Image.open(f) for f in sorted(glob.glob(png_in))]
因此,我将列表展平,添加并使用time.sleep(x)
:
然后,我没有使用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)
多亏了MarkSetchell……我发现的问题是,在执行for循环时,png并不都在那里。我正在使用openscad创建png文件,在这里我需要实现一个
time.sleep
。在调试模式下,由于速度较慢,openscad有时间创建png,因此您看不到这个问题。“太快”到底是为了什么?你想做什么?实际的问题是什么?请尝试检查文件列表中的名称-您可能正在拾取点文件或无效文件。@MarkSetchell:太快,我的意思是在pycharm中,简单地运行脚本不起作用,错误消息会被抛出for循环(好像打开图像花费的时间太长)。如果我调试,在for循环所在的位置添加一个bullit点,然后使用F8,所有操作都会相应地进行。尝试检查排序(glob.glob(png_in))
@MarkSetchell:这只是一个字符串列表(每个*.png的路径和文件名)。@MarkSetchell:谢谢Mark(请参阅下面的答案)。搜索得好!感谢您与SO社区分享。
unknown element "blank"
i = Image.open(f)