Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.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 是否可以将使用Tkinter创建的动画保存在文件中?_Python_Animation_Tkinter - Fatal编程技术网

Python 是否可以将使用Tkinter创建的动画保存在文件中?

Python 是否可以将使用Tkinter创建的动画保存在文件中?,python,animation,tkinter,Python,Animation,Tkinter,我想使用Python创建包含文本和简单移动几何对象(直线、矩形、圆等)的动画(视频) 在题为“Python2.6图形烹饪书”的书中,我找到了使用Tkinter库的示例。首先,它看起来像我需要的。我能够创建简单的动画,但后来我意识到,最终我想要一个包含我的动画的文件(gif或mp4格式)。然而,我拥有的是一个应用程序,它在我的计算机上运行GUI,并向我展示我的动画 有没有一种简单的方法可以将我在GUI中看到的动画保存到文件中?没有简单的方法 这个问题的答案与使用python创建这些文件密切相关(即

我想使用Python创建包含文本和简单移动几何对象(直线、矩形、圆等)的动画(视频)

在题为“Python2.6图形烹饪书”的书中,我找到了使用Tkinter库的示例。首先,它看起来像我需要的。我能够创建简单的动画,但后来我意识到,最终我想要一个包含我的动画的文件(gif或mp4格式)。然而,我拥有的是一个应用程序,它在我的计算机上运行GUI,并向我展示我的动画


有没有一种简单的方法可以将我在GUI中看到的动画保存到文件中?

没有简单的方法

这个问题的答案与使用python创建这些文件密切相关(即:它没有提到tkinter)

该问题的答案与将画布保存为图像有关


你可以从这两个问题中选出最好的答案,并将它们组合成一个程序

没有简单的方法

这个问题的答案与使用python创建这些文件密切相关(即:它没有提到tkinter)

该问题的答案与将画布保存为图像有关


你可以从这两个问题中选出最好的答案,并将它们组合成一个程序

有一种方法可以做到这一点,使用“录制屏幕方法”,这在另一篇文章中有解释

单击链接-->


他们说这是Mac(OS X)和Windows的免费软件,有一种方法可以做到这一点,用“录制屏幕法”,这在另一篇文章中解释过

单击链接-->

他们说,这是Mac(OS X)和Windows的免费软件,你可以看看,但它可能有点过度杀伤力

我想说你也可以使用Blender3d,但我不确定它是如何工作的。有人比我更有经验,我可以告诉你更多关于这方面的信息。

你可以看看,但它可能会有点过度,因为你需要它


我想说你也可以使用Blender3d,但我不确定它是如何工作的。有比我更有经验的人可以告诉你更多这方面的信息。

我以前已经完成了这项工作,但不是以一种特别漂亮的方式

Tl;dr将画布另存为图像在迭代的每个步骤中,使用外部工具将图像转换为gif

这不需要任何外部依赖项或新软件包,除非您的计算机上已经安装了imagemagick

  • 保存图像
  • 我假设您使用的是Tkinter画布对象。如果您正在将实际图像发布到tk小部件,保存它们可能会容易得多;tk画布没有内置的保存功能,只能作为PostScript保存。Postscript实际上可能适合制作动画,但除此之外,您可以

    • 同时绘制PIL并保存PIL图像
    • 在每一步都做一个截图,也许可以使用imagegrab

    • 将图像转换为动画
    保存图像后,我使用imagemagick将其转储到gif或mpg中。您可以使用或类似的工具直接从python运行该命令。这还意味着该进程隐式地在一个单独的线程上运行,因此它不会在程序运行时停止程序。您可以查询该文件以了解该过程何时完成

    命令

    convert ../location/*.ps -quality 100 ../location/animation.gif
    
    我们应该做到这一点

    怪癖:

    这里有一些小细节,但流程并不完美。Imagemagick按顺序读取文件,因此需要保存文件,以便按字母顺序和时间顺序排列。当心这个名字

    name9.ps
    
    按字母顺序大于

    name10.ps
    
    从imagemagick的角度来看


    如果你没有imagemagick,你可以在linux和mac上轻松下载它(这是一个非常有用的命令行工具),cygwin也可以在windows上下载。如果你担心便携性。。。好PIL也不是标准的

    我以前已经做到了这一点,但不是以一种特别漂亮的方式

    Tl;dr将画布另存为图像在迭代的每个步骤中,使用外部工具将图像转换为gif

    这不需要任何外部依赖项或新软件包,除非您的计算机上已经安装了imagemagick

  • 保存图像
  • 我假设您使用的是Tkinter画布对象。如果您正在将实际图像发布到tk小部件,保存它们可能会容易得多;tk画布没有内置的保存功能,只能作为PostScript保存。Postscript实际上可能适合制作动画,但除此之外,您可以

    • 同时绘制PIL并保存PIL图像
    • 在每一步都做一个截图,也许可以使用imagegrab

    • 将图像转换为动画
    保存图像后,我使用imagemagick将其转储到gif或mpg中。您可以使用或类似的工具直接从python运行该命令。这还意味着该进程隐式地在一个单独的线程上运行,因此它不会在程序运行时停止程序。您可以查询该文件以了解该过程何时完成

    命令

    convert ../location/*.ps -quality 100 ../location/animation.gif
    
    我们应该做到这一点

    怪癖:

    这里有一些小细节,但流程并不完美。Imagemagick按顺序读取文件,因此需要保存文件,以便按字母顺序和时间顺序排列。当心这个名字

    name9.ps
    
    按字母顺序大于

    name10.ps
    
    从imagemagick的角度来看

    如果你没有imagemagick,你可以在linux和mac上轻松下载它(这是一个非常有用的命令行工具),cygwin也可以在windows上下载。如果你担心便携性。。。好PIL也不是标准的