from PIL import Image | |
from io import BytesIO | |
import requests | |
from fastapi import UploadFile | |
from typing import Optional | |
async def get_file(file: Optional[UploadFile] = None, url: Optional[str] = None) -> Image.Image: | |
if file: | |
image = Image.open(file.file).convert("RGB") | |
elif url: | |
response = requests.get(url) | |
image = Image.open(BytesIO(response.content)).convert("RGB") | |
else: | |
raise ValueError("No image file or URL provided.") | |
return image |