diff --git a/3-experiments/5-image-segmentation/1-panoptic-segmentation/facebook-swing-tiny-coco/app.py b/3-experiments/5-image-segmentation/1-panoptic-segmentation/facebook-swing-tiny-coco/app.py index 5f30c07..cfca727 100644 --- a/3-experiments/5-image-segmentation/1-panoptic-segmentation/facebook-swing-tiny-coco/app.py +++ b/3-experiments/5-image-segmentation/1-panoptic-segmentation/facebook-swing-tiny-coco/app.py @@ -1,8 +1,11 @@ import gradio as gr from PIL import Image, ImageDraw, ImageFont +# imprime un texto en el centro de una imagen en negro por defecto -def print_text_on_image_centered(blank_image, draw, text): +def print_text_on_image_centered(image, text, color="black"): + # Crea un objeto Draw para la imagen + draw = ImageDraw.Draw(image) # Define el texto y la fuente text = "HuggingFace API Token invalid. Please enter a valid token." # Define el tamaño inicial de la fuente @@ -15,31 +18,35 @@ def print_text_on_image_centered(blank_image, draw, text): text_height = text_bbox[3] - text_bbox[1] # Reduce el tamaño de la fuente hasta que el texto se ajuste dentro de la imagen - while text_width > blank_image.width: + while text_width > image.width: font_size -= 1 font = ImageFont.load_default().font_variant(size=font_size) text_bbox = draw.textbbox((0, 0), text, font=font) text_width = text_bbox[2] - text_bbox[0] # Calcula la posición del texto - text_x = (blank_image.width - text_width) / 2 - text_y = (blank_image.height - text_height) / 2 + text_x = (image.width - text_width) / 2 + text_y = (image.height - text_height) / 2 # Dibuja el texto en la imagen - draw.text((text_x, text_y), text, font=font, fill="black") - return blank_image + draw.text((text_x, text_y), text, font=font, fill=color) + return image + +# Crea una imagen en blanco por defecto + +def create_background_image(width, height, color="white"): + return Image.new("RGB", (width, height), color) def segment_gradio_image(api_token, image): print("api_token: " + api_token) #response = segment_image(image) # Crea una imagen en blanco de 500x500 píxeles - blank_image = Image.new('RGB', (500, 500), 'white') - # Crea un objeto Draw para la imagen - draw = ImageDraw.Draw(blank_image) - blank_image = print_text_on_image_centered(blank_image, draw, 'HuggingFace API Token invalid. Please enter a valid token.') + + + text_image = print_text_on_image_centered(create_background_image(500, 500, "white"), 'HuggingFace API Token invalid. Please enter a valid token.', 'red') - return blank_image + return text_image # Create the Gradio interface