Skip to content

Commit

Permalink
[build/screenshots] Add create_gif.py script
Browse files Browse the repository at this point in the history
  • Loading branch information
MarcNumworks authored and PiaNumworks committed Mar 22, 2024
1 parent 46dc4f3 commit fd16cf5
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 3 deletions.
35 changes: 35 additions & 0 deletions build/screenshots/create_gif.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import argparse
import helper

parser = argparse.ArgumentParser(
description="This script creates a gif from a folder of screenshots"
)
parser.add_argument(
"-o", "--output-folder", default="screenshots_each_step", help="output folder"
)
parser.add_argument(
"--delay",
type=int,
default=350,
help="delay in ms between images (default 350)",
)
parser.add_argument(
"--end-delay",
type=int,
default=1750,
help="delay in ms after the last image (default 1750)",
)


def main():
args = parser.parse_args()
helper.create_gif(
helper.list_images_in_folder(helper.folder_images(args.output_folder)),
args.output_folder,
delay=args.delay,
end_delay=args.end_delay,
)


if __name__ == "__main__":
main()
12 changes: 9 additions & 3 deletions build/screenshots/helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,13 @@ def generate_all_screenshots(
return list_images


def create_gif(list_images, folder, gif_name="scenario"):
def create_gif(list_images, folder, gif_name="scenario", delay=350, end_delay=1750):
print("Creating gif")
gif = os.path.join(folder, gif_name + ".gif")
p = Popen(
"convert -set delay '%[fx:t==(n-1) ? 175 : 35]' "
"convert"
# convert delays are in centiseconds
+ f" -set delay '%[fx:t==(n-1) ? {end_delay / 10} : {delay / 10}]' "
+ " ".join(list_images)
+ " "
+ gif,
Expand All @@ -92,12 +94,16 @@ def create_gif(list_images, folder, gif_name="scenario"):
print("Done, gif created in", folder)


def folder_images(folder):
return os.path.join(folder, "images")


def generate_all_screenshots_and_create_gif(
state_file, executable, folder, skip_idle=False, exit_if_error=True
):
clean_or_create_folder(folder)
list_images = generate_all_screenshots(
state_file, executable, os.path.join(folder, "images"), skip_idle, exit_if_error
state_file, executable, folder_images(folder), skip_idle, exit_if_error
)
create_gif(list_images, folder)
return list_images
Expand Down

0 comments on commit fd16cf5

Please sign in to comment.