def create_card(card_data, settings): margin = cm_to_pixels(settings['margin']) spacing = cm_to_pixels(settings['spacing']) (card_width_cm, card_height_cm) = settings['card_size'] (card_width_px, card_height_px) = (cm_to_pixels(card_width_cm), cm_to_pixels(card_height_cm)) border_width_px = cm_to_pixels(settings['border_width']) # around each card border_color = settings['border_color'] outline_width = settings['outline_width'] outline_color = settings['outline_color'] size_minus_border = (card_width_px - (border_width_px * 2), card_height_px - (border_width_px * 2)) (width_minus_border, height_minus_border) = size_minus_border card = Image.new("RGB", size_minus_border, "white") #draw_bg(card, width_minus_border, height_minus_border) draw_illustration(card, card_data['pic'], 100, 500, width_minus_border, outline_width, outline_color) draw_title(card, card_data['name'], (20, 15)) draw_body(card, card_data['body'], 730, width_minus_border, card_data['body_width']) draw_footer(card, 100, width_minus_border, height_minus_border) draw_corner_nr(card, card_data['speed'], (width_minus_border - 65, height_minus_border - 90)) card_with_border = ImageOps.expand(card, border=border_width_px, fill=border_color) return card_with_border
def create_page(card_set, settings, card_indexes): card_datas = card_set['cards'] selected_card_datas = [] margin = cm_to_pixels(settings['margin']) (card_width_cm, card_height_cm) = settings['card_size'] (card_width_px, card_height_px) = (cm_to_pixels(card_width_cm), cm_to_pixels(card_height_cm)) spacing = cm_to_pixels(settings['spacing']) i = 0 for d in card_datas: if i in card_indexes: selected_card_datas.append(d) i += 1 cards = [] for data in selected_card_datas: card = create_card(data, settings) for x in range(data['count']): cards.append(card) page = Image.new("RGB", a4_size, "white") card_index = 0 for y in xrange(margin, a4_height - card_height_px, card_height_px + spacing): for x in xrange(margin, a4_width - card_width_px, card_width_px + spacing): if card_index >= len(cards): break card = cards[card_index] card_index += 1 page.paste(card, (x, y)) return page
def create_page(card_set, settings, card_indexes): card_datas = card_set["cards"] selected_card_datas = [] margin = cm_to_pixels(settings["margin"]) (card_width_cm, card_height_cm) = settings["card_size"] (card_width_px, card_height_px) = (cm_to_pixels(card_width_cm), cm_to_pixels(card_height_cm)) spacing = cm_to_pixels(settings["spacing"]) i = 0 for d in card_datas: if i in card_indexes: selected_card_datas.append(d) i += 1 cards = [] for data in selected_card_datas: card = create_card(data, settings) for x in range(data["count"]): cards.append(card) page = Image.new("RGB", a4_size, "white") card_index = 0 for y in xrange(margin, a4_height - card_height_px, card_height_px + spacing): for x in xrange(margin, a4_width - card_width_px, card_width_px + spacing): if card_index >= len(cards): break card = cards[card_index] card_index += 1 page.paste(card, (x, y)) return page
def create_page(card_set, card_indexes): margin = cm_to_pixels(card_set['margin']) spacing = cm_to_pixels(card_set['spacing']) (card_width_cm, card_height_cm) = card_set['card_size'] (card_width_px, card_height_px) = (cm_to_pixels(card_width_cm), cm_to_pixels(card_height_cm)) border_width_px = cm_to_pixels(card_set['border_width']) # around each card border_color = card_set['border_color'] outline_width = card_set['outline_width'] outline_color = card_set['outline_color'] size_minus_border = (card_width_px - (border_width_px * 2), card_height_px - (border_width_px * 2)) card_datas = card_set['cards'] selected_card_datas = [] i = 0 for d in card_datas: if i in card_indexes: selected_card_datas.append(d) i += 1 cards = [] for data in selected_card_datas: card = create_card(data, size_minus_border, border_width_px, border_color, outline_width, outline_color) for x in range(data['count']): cards.append(card) page = Image.new("RGB", a4_size, "white") card_index = 0 for y in xrange(margin, a4_height - card_height_px, card_height_px + spacing): for x in xrange(margin, a4_width - card_width_px, card_width_px + spacing): if card_index >= len(cards): break card = cards[card_index] card_index += 1 page.paste(card, (x, y)) return page
from PIL import Image from card import create_card from converters import cm_to_pixels a4_size = (cm_to_pixels(21.0), cm_to_pixels(29.7)) (a4_width, a4_height) = a4_size def create_page(card_set, card_indexes): margin = cm_to_pixels(card_set['margin']) spacing = cm_to_pixels(card_set['spacing']) (card_width_cm, card_height_cm) = card_set['card_size'] (card_width_px, card_height_px) = (cm_to_pixels(card_width_cm), cm_to_pixels(card_height_cm)) border_width_px = cm_to_pixels(card_set['border_width']) # around each card border_color = card_set['border_color'] outline_width = card_set['outline_width'] outline_color = card_set['outline_color'] size_minus_border = (card_width_px - (border_width_px * 2), card_height_px - (border_width_px * 2)) card_datas = card_set['cards'] selected_card_datas = [] i = 0 for d in card_datas: if i in card_indexes: selected_card_datas.append(d) i += 1
from PIL import Image from card import create_card from converters import cm_to_pixels a4_size = (cm_to_pixels(21.0), cm_to_pixels(29.7)) (a4_width, a4_height) = a4_size def create_page(card_set, settings, card_indexes): card_datas = card_set['cards'] selected_card_datas = [] margin = cm_to_pixels(settings['margin']) (card_width_cm, card_height_cm) = settings['card_size'] (card_width_px, card_height_px) = (cm_to_pixels(card_width_cm), cm_to_pixels(card_height_cm)) spacing = cm_to_pixels(settings['spacing']) i = 0 for d in card_datas: if i in card_indexes: selected_card_datas.append(d) i += 1 cards = [] for data in selected_card_datas: card = create_card(data, settings) for x in range(data['count']): cards.append(card) page = Image.new("RGB", a4_size, "white")