freedoom/dist/pillow-compose

28 lines
736 B
Python
Executable File

#!/usr/bin/env python3
# SPDX-License-Identifier: CC0-1.0
# Simple and dumb Pillow-based compositor
# Usage: pillow-compose src-img.png dst-img.png WIDTH HEIGHT
import sys
from PIL import Image
src = Image.open(sys.argv[1])
img = Image.new("RGBA", (int(sys.argv[3]), int(sys.argv[4])), (0, 0, 0, 0))
# Pillow's compositing won't accept negative values. This can happen
# if the destination image is smaller on at least on axis than the
# source image.
if img.size[0] - src.size[0] < 0:
off_x = 0
else:
off_x = (img.size[0] - src.size[0]) // 2
if img.size[1] - src.size[1] < 0:
off_y = 0
else:
off_y = (img.size[1] - src.size[1]) // 2
img.alpha_composite(src.convert("RGBA"), (off_x, off_y))
img.save(sys.argv[2])