DrawBot中绘图和动画的排版和布局实用程序

furniture-typo的Python项目详细描述


#furniture

drawbot中用于绘图和动画制作的布局、动画和排版实用程序。




但它也需要大量的样板文件和-当你制作一个长动画-渲染过程可能是缓慢的和内存密集型的(因为渲染帧保存在内存中,为最后的视频编译做准备)。因此,您可以使用furniture.animation设置动画,使其能够从命令行逐帧渲染,而不是在单个Drawbot上下文中渲染所有帧。这比在应用程序中渲染所有帧快得多,也意味着您可以在计算机的多个核心上并行渲染帧。(好吧,目前只有一种情况,它需要运行多个python进程。)

**

furniture.geometry

(下面详细介绍,但实际上它只是一些用于分割/插入/偏移简单矩形的函数,可以直接与drawbot原语一起使用,因为"rectangle"类实现了可访问性。顺便说一下,我发现这段代码与"fonttools.misc"中的"arraytools"模块非常相似,您可以在这里看到,可用于"rectangle"对象:https://github.com/fonttools/fonttools/blob/master/lib/fonttools/misc/arraytools.py

\features

-`furniture.geometry`为切片提供简单的"rect"结构&;快速轻松地分割矩形(松散地基于appkit编程中的"cgGeometry"的使用)
-`furniture.animation`提供了一个简单的"animation"对象,用于通过以无状态方式操作的单帧回调来参数化动画(即绘图可以随时呈现)。也就是说,通过给"animation"对象一个"draw"函数来构建"animation"对象,该函数在代码中类似于"def draw(frame):",在该函数中,可以得到上下文"frame"对象(animationframe),该对象具有"frame.i"(当前帧的索引)等属性,以及"frame.doneness"(一个0-1浮点数,将动画的"doneness"作为其长度的函数,它是提供给原始"animation"构造函数的参数)-请参见"example.py"或下面的示例:

````
from furniture.animation import animation
fromDrawbot导入*

def draw(frame):
fill(random(),random(),random())
rect(*frame.page.take(frame.doneness,"minx")


animation=animation(draw,length=100,fps=23.976,fmt="pdf",burn=true,file=\\\\\\\\
animation.storyboard({},0,1,50)
````


` burn=true`只需在视频右下角添加一点~seconds/frame index/render date~框,如果在after effects中查看了内容后需要四处移动,则可以更轻松地进行调试。

您将看到在".storyboard"中指定的帧,即第0、1和50帧。如果您从一个无头的python进程运行该代码,即'import animationfile.py;animationfile.animation.render(start=0);`,这将把你每一帧的PDF文件放到一个名为"frames"的文件夹中。

我发现,快速轻松预览渲染作品的最佳方法可能是获取Adobe After Effects的副本(如果有CC订阅,则免费),然后启动项目并**将渲染帧文件夹(即"0000.pdf")中的第一个图像导入到项目中,一定要选择从"导入"对话框中隐藏的"选项"选项中选择"图像序列"。导入此"图像序列"后,可以将其拖动到时间线区域,它将为您创建一个具有所有正确设置的序列。然后,您可以根据该序列创建合成,并且在渲染新帧时,您可以清除后效内存(通过编辑>;清除>;所有内存)和-瞧!-您有一个可预览/可逐步播放的动画。

**为什么要呈现pdf而不是png?**我注意到,当直接从Drawbot中使用某些字体剪切PNG图像时,有些伪影以可变字体出现,但PDF中不存在相同的伪影,即使在After Effects通过Adobe Media Encoder管道将PDF渲染到MP4S时,这些伪影仍然不可见。

**警告!**很容易得到不正确的导入图像序列的帧速率,因为所有导入序列的默认帧速率都在首映式的"首选项->;媒体->;不确定媒体时基"和"后效果"`首选项->;导入->;序列画面->;帧中设置。每秒。因为我经常把23.976的图像和视频结合在一起,所以我的"不确定媒体时基"保持在23.976,尽管如果你做的是无视频动画,你可以使用更理智的fps,比如24或30,或者更慢的一些来获得更有趣的感觉。




欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如果使用java条件失败,则for循环跳过读取行   操作系统如何在java程序中获取操作系统属性?   在文件系统中放置文件应该触发java应用程序   如何在java中创建由2d int数组组成的2d数组?   继承Java如何知道已创建对象的类型   java如何在SearchView中的EditText上放置选择侦听器?   安卓 java。util。拉链Zipe关于改装和GSON的例外   java Android RatingBar onRatingChanged不会被调用   ms数据库访问故障与java数据库检查   JAVA类文件更改字符串