SaEdit-MultiAi / app.py
Stiphan's picture
Add YouTube Thumbnail Generator app using Gradio and Pillow
dfb17f5 verified
import gradio as gr
from PIL import Image, ImageDraw, ImageFont
import textwrap
def create_thumbnail(title, bg_color, text_color):
# Thumbnail size (YouTube recommended: 1280x720)
img = Image.new("RGB", (1280, 720), color=bg_color)
draw = ImageDraw.Draw(img)
# Try loading a font
try:
font = ImageFont.truetype("arial.ttf", 80)
except:
font = ImageFont.load_default()
# Wrap text to fit thumbnail
wrapped_text = textwrap.fill(title, width=20)
# Get text size
text_width, text_height = draw.multiline_textsize(wrapped_text, font=font)
# Position text in center
x = (1280 - text_width) / 2
y = (720 - text_height) / 2
# Draw text
draw.multiline_text((x, y), wrapped_text, fill=text_color, font=font, align="center")
return img
with gr.Blocks() as demo:
gr.Markdown("# 🖼 YouTube Thumbnail Generator")
title_input = gr.Textbox(label="Video Title", placeholder="Enter your YouTube video title here")
bg_color_input = gr.ColorPicker(label="Background Color", value="#FF0000")
text_color_input = gr.ColorPicker(label="Text Color", value="#FFFFFF")
generate_btn = gr.Button("Generate Thumbnail")
output_img = gr.Image(label="Generated Thumbnail")
generate_btn.click(
create_thumbnail,
inputs=[title_input, bg_color_input, text_color_input],
outputs=output_img
)
demo.launch()