Я пытаюсь создать API, который получает изображение и выполняет его базовую c обработку, а затем возвращает обновленную копию, используя Open CV и Fast API. До сих пор у меня получатель работал нормально, но когда я пытаюсь с помощью base64 закодировать обработанное изображение и отправить его обратно, мой мобильный интерфейс истекает.
В качестве практики отладки я попытался просто напечатать закодированную строку и выполнить вызов API с помощью Insomnia, но после 5 solid минут печати данных я убил приложение. Правильно ли здесь возвращать строку в кодировке base64? Есть ли более простой способ отправить изображение с открытым резюме через быстрый API?
class Analyzer(BaseModel):
filename: str
img_dimensions: str
encoded_img: str
@app.post("/analyze", response_model=Analyzer)
async def analyze_route(file: UploadFile = File(...)):
contents = await file.read()
nparr = np.fromstring(contents, np.uint8)
img = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
img_dimensions = str(img.shape)
return_img = processImage(img)
encoded_img = base64.b64encode(return_img)
return{
'filename': file.filename,
'dimensions': img_dimensions,
'encoded_img': endcoded_img,
}