text_in_image / app.py
kpkishankrishna
desc and title
9135a36
import gradio as gr
import PIL
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import ast
def predict(image, text,x_cor, y_cor, font_size, font_color, align, line_spacing):
# img = Image.open('/content/bean_youtube_exam.JPG')
img = Image.fromarray(image)
I1 = ImageDraw.Draw(img)
f_size = int(font_size)
myFont = ImageFont.truetype('Quintessential-Regular.ttf', f_size)
if font_color[0] == "(":
font_color = ast.literal_eval(font_color)
I1.multiline_text((int(x_cor), int(y_cor)), text, font=myFont, fill = font_color, spacing = line_spacing, align = align)
return img
intr = gr.Interface(predict, ["image", gr.Textbox(value="Is AI the Future of Fraud? \nFind out how ChatGPT Could Help You MAKE Fraud!", lines=10),
gr.Number(value=10), gr.Number(value=10), gr.Number(value=50),
gr.Textbox(value="white"), gr.Textbox(value="left"), gr.Number(value=50)],
"image", title = "Apply text on images",debug=True, description = "Max 10 lines, specific color rgb format"
,examples=[["bean_youtube_exam.JPG", "Is AI the Future of Fraud? \nFind out how ChatGPT Could Help You MAKE Fraud!",10, 10, 30, "white", "left", 20],
["distantlights1fb.jpg","Is AI the Future of Fraud? \nFind out how ChatGPT Could Help You MAKE Fraud!",20, 30, 40, "(255,200,100)", "right", 40 ]])
intr.launch(inline = False)