#!/usr/bin/env python3 from __future__ import print_function from wand.image import Image from wand.drawing import Drawing from wand.color import Color from wand.display import display def main(): colors = ['red', 'green', 'blue', 'yellow'] special_cards = ['W', 'N'] for color in colors: for i in range(1, 4): draw_card_face(color, i) for sign in special_cards: draw_card_face('white', sign) def draw_card_face(color, symbol): with Image(filename='assets/wozard-card.png') as img: img = draw_symbol(img, symbol, color, 90, 130) img = draw_symbol(img, symbol, color, int(img.width - 90), 130) img.flip() # Make mirrored text img = draw_symbol(img, symbol, color, 90, 130) img = draw_symbol(img, symbol, color, int(img.width - 100), 130) img = draw_rune(img, color) save_img(img, color, symbol) def draw_symbol(img, symbol, color, x, y): with Drawing() as draw: draw.font = 'wandtests/assets/League_Gothic.otf' draw.font_size = 100 draw.text_alignment = 'center' draw.fill_color=Color(color) draw.text(x, y, str(symbol)) draw(img) return img def draw_rune(img, color): with Image(filename='assets/{}.png'.format(color)) as rune: rune.resize(110,122) img.composite( rune, left=int((img.width - rune.width) / 2), top=int((img.height - rune.height) / 2)) return img def save_img(img, color, symbol): img.save(filename='output/card-{}-{}.png'.format(color, symbol)) main()