#!python # -*- mode: python; Encoding: utf-8; coding: utf-8 -*- # Last updated: <2023/10/30 06:07:21 +0900> """ Load font image and padding. Usage : fontpadding.py INFILE OUTFILE PADDINGX PADDINGY Windows10 x64 22H2 + Python 3.10.10 64bit """ import sys from PIL import Image def main(): if len(sys.argv) != 5: print("Usage : fontpadding.py INFILE OUTFILE PADDINGX PADDINGY") sys.exit() infile = sys.argv[1] outfile = sys.argv[2] padx = int(sys.argv[3]) pady = int(sys.argv[4]) print(f"infile : {infile}") print(f"outfile : {outfile}") print(f"padding : {padx}, {pady}") im = Image.open(infile).convert("RGB") iw, ih = im.size print(im.format, iw, ih, im.mode) fw = iw / 16 fh = ih / 16 dw = iw + 16 * padx dh = ih + 16 * pady nim = Image.new("RGB", (dw, dh)) buf = [] for y in range(16): for x in range(16): x0 = x * fw y0 = y * fh im2 = im.crop((x0, y0, x0 + fw, y0 + fh)) tx = int(x * (fw + padx) + (padx / 2)) ty = int(y * (fh + pady) + (pady / 2)) nim.paste(im2, (tx, ty)) nim.save(outfile) if __name__ == '__main__': main()