2391 点 | 关注 @monsterjavaguns 美国佐治亚州亚特兰大市 Jason van Gumster 主要创作一些东西。他写作、制作动画,偶尔也用开源工具进行教学。他经营一家小型独立动画工作室,撰写了《Blender For Dummies》和《GIMP Bible》,并持续在 [有时] 每周一次的播客《Open Source Creative Podcast》中分享他的经验。冒险(和谎言)请关注 @monsterjavaguns。 开源冠军 作者 评论园丁 专栏作家
作者的评论
如果我们只是在讨论从相机等设备传输的图像,那么校验和可能是一个解决方案。 但是,如果是正在渲染的动画帧,那么由于您提出的问题,很难使用校验和来执行此类操作。 我们正在处理原始数据; 没有“已知良好”的文件版本可以进行比较。 在这种情况下,我们对数据完整性的质疑从“这是否与我们已经知道的另一个文件相同?”变为“这个文件是否可以作为图像读取?” 这就是 verify() 的用途。
这是一个好问题,老实说,我不确定图像是否已加载到内存中。 也就是说,就像我在文章中写的那样,我经常在包含超过 44,000 张图像的目录中使用此脚本的变体,并且我没有遇到任何异常的内存使用情况。 诚然,我运行它的机器具有相当强大的 RAM 规格,因此下次运行它时,我肯定需要更加注意。
总而言之,在 for 循环的末尾添加 img.close() 可能不会有什么坏处(并且可能会更合适)。 我想这应该可以解决那里的大部分问题。