From baaec3dfaa637d982ce52d4716d16d6cae5b2c47 Mon Sep 17 00:00:00 2001 From: villares Date: Mon, 13 Apr 2020 17:48:27 -0300 Subject: [PATCH] Create gif_animation_helper.py --- .../gif_animation_helper.py | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 2020/sketch_2020_04_13b/gif_animation_helper.py diff --git a/2020/sketch_2020_04_13b/gif_animation_helper.py b/2020/sketch_2020_04_13b/gif_animation_helper.py new file mode 100644 index 00000000..37ab1139 --- /dev/null +++ b/2020/sketch_2020_04_13b/gif_animation_helper.py @@ -0,0 +1,44 @@ +""" +Alexandre B A Villares http://abav.lugaralgum.com - GPL v3 + +A helper for the Processing gifAnimation library https://github.com/extrapixel/gif-animation/tree/3.0 +Download from https://github.com/villares/processing-play/blob/master/export_GIF/unzip_and_move_to_libraries_GifAnimation.zip +This helper was inspired by an example by Art Simon https://github.com/APCSPrinciples/AnimatedGIF/ + +v2019_09_23 + +# add at the start of your sketch: + add_library('gifAnimation') + from gif_animation_helper import gif_export +# add at the end of draw(): + gif_export(GifMaker, "filename") +""" + +def gif_export(GifMaker, # gets a reference to the library + filename="exported", # .gif will be added + repeat=0, # 0 makes it an "endless" animation + quality=100, # quality range 0 - 255 + delay=50, # this is quick + frames=0, # 0 will stop on keyPressed or frameCount >= 100000 + finish=False): # force stop + global gifExporter + try: + gifExporter + except NameError: + gifExporter = GifMaker(this, filename + ".gif") + gifExporter.setRepeat(repeat) + gifExporter.setQuality(quality) + gifExporter.setDelay(delay) + print("gif recording started") + + + gifExporter.addFrame() + + if (frames == 0 and keyPressed and key == "e" or + frames != 0 and frameCount >= frames): + finish = True + + if finish: + gifExporter.finish() + print("gif saved, exit") + exit()