예제 #1
0
def generate_separate_card_images_from_set(card_set,
                                           settings,
                                           card_indexes=range(0, 999),
                                           save=False,
                                           show=True):
    print "Generating separate cards for set '" + str(card_set['name']) + "'"
    #card_set = dict(card_set_without_settings.items() + settings.items())
    cards = card_set['cards']
    total_card_count = 0
    card_datas = card_set['cards']

    cards = []
    for i in card_indexes:
        if i >= len(card_datas):
            break
        data = card_datas[i]
        card = create_card(data, settings)
        total_card_count += 1
        if show:
            card.show()
        if save:
            path = "output/" + card_set['name'] + "_card_" + str(
                i) + "_" + data['name'].replace(" ", "_") + ".png"
            print "Saving '" + path + "'"
            card.save(path)

    print "Total card count: " + str(total_card_count)
예제 #2
0
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
예제 #3
0
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
예제 #4
0
def main_menu():
    while True:
        print('\n1. Create an account\n2. Log into account\n3. Show all accounts\n0. Exit')
        choice = input()
        if choice == '1':
            cd.create_card()
            continue
        elif choice == '2':
            loggedin = mn.login(cd.check_card())
            if loggedin:
                continue
            else:
                stop()
                break
        elif choice == '3':
            db.show_details()
        elif choice == '0':
            stop()
            break
예제 #5
0
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
예제 #6
0
def generate_separate_card_images_from_set(card_set, settings, card_indexes=range(0, 999), save=False, show=True):
    print "Generating separate cards for set '" + str(card_set["name"]) + "'"
    # card_set = dict(card_set_without_settings.items() + settings.items())
    cards = card_set["cards"]
    total_card_count = 0
    card_datas = card_set["cards"]

    cards = []
    for i in card_indexes:
        if i >= len(card_datas):
            break
        data = card_datas[i]
        card = create_card(data, settings)
        total_card_count += 1
        if show:
            card.show()
        if save:
            path = "output/" + card_set["name"] + "_card_" + str(i) + "_" + data["name"].replace(" ", "_") + ".png"
            print "Saving '" + path + "'"
            card.save(path)

    print "Total card count: " + str(total_card_count)