@rollin
To send a base64 encoded image to a FastAPI backend, you can use a POST request with the image data included in the request body. Here is an example of how you can achieve this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
from fastapi import FastAPI from pydantic import BaseModel class Image(BaseModel): data: str app = FastAPI() @app.post("/upload_image/") async def upload_image(image: Image): # Decode the base64 image data decoded_image = base64.b64decode(image.data) # Save the image to a file or perform any desired processing # For example, you can save the image to a file like this: with open("image.jpg", "wb") as file: file.write(decoded_image) return {"message": "Image uploaded successfully"} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import requests import base64 # Load the image file with open("image.jpg", "rb") as file: image_data = file.read() # Encode the image data to base64 encoded_image = base64.b64encode(image_data).decode("utf-8") # Send a POST request with the base64 encoded image data url = "http://localhost:8000/upload_image/" payload = {"data": encoded_image} response = requests.post(url, json=payload) print(response.json()) |
In this example, we first load and encode an image file using base64 in Python and then send a POST request to the FastAPI endpoint with the encoded image data in the request body. The FastAPI backend decodes the base64 data, processes it as needed, and sends back a response confirming the successful upload of the image.