File size: 719 Bytes
84d893d
 
8ee684f
 
 
84d893d
 
 
 
8ee684f
84d893d
 
55e8baa
 
 
 
 
 
 
 
2a525b2
84f6df9
2a525b2
84f6df9
 
 
2a525b2
84f6df9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from fastapi import FastAPI, HTTPException
from fastapi.responses import StreamingResponse
import qrcode
import io

app = FastAPI()

@app.post("/generate_qr/")
async def generate_qr(text: str):
    if not text or not text.strip():
        raise HTTPException(status_code=400, detail="Text input is empty")

    qr = qrcode.QRCode(
        version=1,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=10,
        border=4,
    )
    qr.add_data(text.strip())
    qr.make(fit=True)

    img = qr.make_image(fill_color="#0057D8", back_color="white").convert("RGB")

    buf = io.BytesIO()
    img.save(buf, format="PNG")
    buf.seek(0)

    return StreamingResponse(buf, media_type="image/png")