|
import gradio as gr |
|
import numpy as np |
|
import matplotlib.pyplot as plt |
|
from PIL import Image, ImageDraw, ImageFont |
|
|
|
|
|
def add_text_to_image(image, text, text_color, text_size, text_position_x, text_position_y, font): |
|
|
|
if isinstance(image, np.ndarray): |
|
image = Image.fromarray(image.astype('uint8'), 'RGB') |
|
|
|
|
|
draw = ImageDraw.Draw(image) |
|
|
|
|
|
try: |
|
font = ImageFont.truetype(font, text_size) |
|
except IOError: |
|
|
|
font = ImageFont.load_default() |
|
|
|
|
|
draw.text((text_position_x, text_position_y), text, fill=text_color, font=font) |
|
|
|
|
|
return np.array(image) |
|
|
|
|
|
iface = gr.Interface( |
|
fn=add_text_to_image, |
|
inputs=[ |
|
gr.Image(label="Input Image"), |
|
gr.Textbox(label="Text"), |
|
gr.ColorPicker(label="Text Color", value="#FFFFFF"), |
|
gr.Slider(minimum=10, maximum=100, value=30, label="Text Size"), |
|
gr.Slider(minimum=0, maximum=500, value=50, label="Text Position X"), |
|
gr.Slider(minimum=0, maximum=500, value=50, label="Text Position Y"), |
|
gr.Textbox(label="Font (e.g., 'arial.ttf')", value="arial.ttf") |
|
], |
|
outputs=gr.Image(label="Output Image"), |
|
title="Add Text to Image", |
|
description="Upload an image and add customizable text to it." |
|
) |
|
|
|
|
|
iface.launch() |