freedoom/graphics/text/create_caption
Mike Swanson 6eef9be73a use python3 only for building
Python 2 is very near end-of-life, and Python3-compatible changes to a
few scripts introduced compatibility problems with 2.7 again.  It went
unnoticed for me since my system symlinks "python" to "python3", but
it broke the build on systems where that symlink is still python2.  At
this point in time, I feel it is worth targetting modern Python and
forgetting about 2.7.
2019-09-06 14:43:50 -07:00

59 lines
1.4 KiB
Python
Executable file

#!/usr/bin/env python3
# encoding: utf-8
# SPDX-License-Identifier: BSD-3-Clause
from PIL import Image, ImageFont, ImageDraw
import sys
import os
# create_caption.py <background_image> <title?> <phase?> <outfile>
font = ImageFont.load_default()
txt1 = "© 2001-2019"
txt2 = os.environ["VERSION"]
background_image = Image.open(sys.argv[1])
background_image.load()
background_image = background_image.convert("RGBA")
image = Image.new("RGBA", background_image.size, (0, 0, 0, 0))
draw = ImageDraw.Draw(image)
txt1_size = draw.textsize(txt1, font=font)
txt2_size = draw.textsize(txt2, font=font)
draw.text(
(5, int(image.height - txt1_size[1] - 5)),
txt1,
font=font,
fill=(255, 165, 0, 255),
)
draw.text(
(
int(image.width - txt2_size[0] - 10),
int(image.height - txt2_size[1] - 5),
),
txt2,
font=font,
fill=(255, 165, 0, 255),
)
if len(sys.argv) > 3:
# paste the other stuff onto the thing.
logo = Image.open(sys.argv[2])
logo.load()
phase = Image.open(sys.argv[3])
phase.load
image.paste(logo, ((int(image.width / 2) - int(logo.width / 2), 18)))
image.paste(
phase,
(
(int(image.width / 2) - int(phase.width / 2)),
int(image.height - phase.height - 30),
),
)
outfile_name = sys.argv[4]
else:
outfile_name = sys.argv[2]
image = Image.alpha_composite(background_image, image)
image.save(outfile_name)