from PIL import Image import os import zipfile # Abrir a imagem original do baralho input_path = "/mnt/data/37631.jpg" img = Image.open(input_path) # Dimensões e configurações cols = 13 # cartas por linha rows = 4 # 4 naipes card_width = img.width // cols card_height = img.height // rows # Mapeamento dos valores e naipes usados no Truco Paulista truco_values = ["4", "5", "6", "7", "Q", "J", "K", "A", "2", "3"] truco_order = ["A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"] naipes = ["C", "S", "H", "D"] # ordem: Clubs, Spades, Hearts, Diamonds # Criar pasta temporária output_dir = "/mnt/data/cartas" os.makedirs(output_dir, exist_ok=True) # Recortar e salvar cartas do Truco saved_cards = [] for row in range(rows): naipe = naipes[row] for col, value in enumerate(truco_order): if value in truco_values: x0 = col * card_width y0 = row * card_height box = (x0, y0, x0 + card_width, y0 + card_height) card = img.crop(box) filename = f"{value}{naipe}.png" filepath = os.path.join(output_dir, filename) card.save(filepath) saved_cards.append(filepath) # Criar verso da carta (usando o verso da primeira carta como base — branco com borda) # Usar a carta 10♣ como verso back_card = img.crop((9 * card_width, 0, 10 * card_width, card_height)) back_path = os.path.join(output_dir, "back.png") back_card.save(back_path) saved_cards.append(back_path) # Compactar em zip zip_path = "/mnt/data/baralho_truco.zip" with zipfile.ZipFile(zip_path, "w") as zipf: for file in saved_cards: zipf.write(file, os.path.basename(file)) zip_path