from fastapi import FastAPI, Form from fastapi.responses import StreamingResponse from PIL import Image, ImageDraw, ImageFont import io app = FastAPI() @app.get("/") def greet_json(): return {"Hello": "World!"} @app.post("/generate-image") async def generate_image(text: str = Form(...)): # Create a blank image image = Image.new('RGB', (512, 256), color=(73, 109, 137)) draw = ImageDraw.Draw(image) # Use a default font try: font = ImageFont.truetype("arial.ttf", 30) except: font = ImageFont.load_default() draw.text((10, 100), text, fill=(255, 255, 255), font=font) # Convert image to bytes buf = io.BytesIO() image.save(buf, format="PNG") buf.seek(0) return StreamingResponse(buf, media_type="image/png")