Plymouth-Progress-Bar/create-screenshots.py
2019-07-11 16:30:43 -03:00

80 lines
3.9 KiB
Python

from PIL import Image
import os
import sys
SCREENSHOTS_FOLDER = "screenshots"
def create_screenshots(path, resolutions):
color_scheme = {
"background": Image.open(os.path.join(path, "background.png")).convert("RGBA"),
"logo": Image.open(os.path.join(path, "logo.png")).convert("RGBA"),
"progress-bar": Image.open(os.path.join(path, "progress-bar.png")).convert("RGBA"),
"progress-box": Image.open(os.path.join(path, "progress-box.png")).convert("RGBA"),
"box": Image.open(os.path.join(path, "box.png")).convert("RGBA"),
"entry": Image.open(os.path.join(path, "entry.png")).convert("RGBA"),
"lock": Image.open(os.path.join(path, "lock.png")).convert("RGBA"),
"bullet": Image.open(os.path.join(path, "bullet.png")).convert("RGBA")
}
for r in resolutions:
x = r["width"]
y = r["height"]
background_x = 0
background_y = 0
logo_x = (x // 2) - (color_scheme["logo"].size[0] // 2)
logo_y = (y // 2) - (color_scheme["logo"].size[1] // 2)
progress_box_x = (x // 2) - (color_scheme["progress-box"].size[0] // 2)
progress_box_y = int(y * 0.65) - (color_scheme["progress-box"].size[1] // 2)
progress_bar_x = (x // 2) - (color_scheme["progress-box"].size[0] // 2)
progress_bar_y = int(y * 0.65) - (color_scheme["progress-box"].size[1] // 2)
box_x = (x // 2) - (color_scheme["box"].size[0] // 2)
box_y = int(4 * y / 5) - (color_scheme["box"].size[1] // 2)
lock_x = box_x + (color_scheme["box"].size[0] // 2) - ((color_scheme["lock"].size[0] + color_scheme["entry"].size[0]) // 2)
lock_y = box_y + (color_scheme["box"].size[1] // 2) - (color_scheme["lock"].size[0] // 2)
entry_x = lock_x + color_scheme["lock"].size[0]
entry_y = box_y + (color_scheme["box"].size[1] // 2) - (color_scheme["entry"].size[1] // 2)
bullet_y = entry_y + (color_scheme["entry"].size[1] // 2) - (color_scheme["bullet"].size[1] // 2)
image = Image.new("RGBA", (x, y))
image.paste(color_scheme["background"].resize((x, y)), (0, 0), color_scheme["background"].resize((x, y)))
image.paste(color_scheme["logo"], (logo_x, logo_y), color_scheme["logo"])
image.paste(color_scheme["progress-box"], (progress_box_x, progress_box_y), color_scheme["progress-box"])
image.paste(color_scheme["progress-bar"].resize((color_scheme["progress-bar"].size[0] // 2, color_scheme["progress-bar"].size[1])), (progress_bar_x, progress_bar_y), color_scheme["progress-bar"].resize((color_scheme["progress-bar"].size[0] // 2, color_scheme["progress-bar"].size[1])))
image.save(os.path.join(path, SCREENSHOTS_FOLDER, f"{x}x{y}.png"))
image.paste(color_scheme["box"], (box_x, box_y), color_scheme["box"])
image.paste(color_scheme["lock"], (lock_x, lock_y), color_scheme["lock"])
image.paste(color_scheme["entry"], (entry_x, entry_y), color_scheme["entry"])
for i in range(0, 10):
image.paste(color_scheme["bullet"], (entry_x + (i * color_scheme["bullet"].size[0]), bullet_y), color_scheme["bullet"])
image.save(os.path.join(path, SCREENSHOTS_FOLDER, f"{x}x{y}-encrypted.png"))
if __name__ == "__main__":
path = ""
resolutions = [
# {"width": 3840, "height": 2160},
# {"width": 2560, "height": 1440},
# {"width": 2560, "height": 1080},
# {"width": 1920, "height": 1080},
# {"width": 1600, "height": 900},
# {"width": 1366, "height": 768},
# {"width": 1360, "height": 768},
# {"width": 1280, "height": 720},
{"width": 1024, "height": 768}
]
# find args
for arg in sys.argv[1:]:
if arg.startswith("--path="):
path = arg.replace("--path=", "")
# validate args
if not os.path.isdir(path):
print(f"Error: {path} is not a valid path")
exit(0)
print(f"Creating screenshots for {path}")
create_screenshots(path, resolutions)