from PIL import Image
from tkinter import Tk
from tkinter.filedialog import askopenfilename, asksaveasfilename
def save_image_to_32bit_bmp():
"""
Abre um diálogo para selecionar a imagem de entrada, converte para BMP com
dimensão 228x200 e profundidade de cor de 32 bits, e salva no local escolhido pelo usuário.
"""
# Configura o root para o diálogo do tkinter
root = Tk()
root.withdraw() # Oculta a janela principal do Tkinter
# Abre o diálogo para selecionar a imagem de entrada
input_image_path = askopenfilename(
title="Selecione a imagem de entrada",
filetypes=[("Image files", ".jpg;.jpeg;.png;.bmp;.tiff")]
)
if not input_image_path:
print("Nenhuma imagem foi selecionada.")
return
# Abre o diálogo para escolher onde salvar a imagem de saída
output_bmp_path = asksaveasfilename(
title="Salvar imagem convertida como",
defaultextension=".bmp",
filetypes=[("Bitmap Image", ".bmp")]
)
if not output_bmp_path:
print("Nenhum caminho de saída foi selecionado.")
return
# Processa a imagem para o formato desejado
with Image.open(input_image_path) as img:
# Redimensiona para 228x200
img = img.resize((228, 200), Image.LANCZOS)
# Converte para RGBA (32 bits: 8 bits para cada canal R, G, B, A)
img = img.convert("RGBA") # RGBA garante 32 bits de profundidade
# Salva a imagem em formato BMP
img.save(output_bmp_path, format="BMP")
print(f"Imagem convertida e salva em: {output_bmp_path}")