Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 从PNG创建gif:在图像中循环似乎太快,只能在调试模式下工作_Python 3.x_Python Imaging Library_Png_Gif_Python Imageio - Fatal编程技术网

Python 3.x 从PNG创建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

我正在尝试从几个(本例中只有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))
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)