From 59c648888d028153a6b3e2027137658d81eb9958 Mon Sep 17 00:00:00 2001 From: Brian Bjarke Jensen Date: Fri, 23 Feb 2024 23:27:46 +0100 Subject: [PATCH] added function to encode image for webview --- src/database/classes.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/database/classes.py b/src/database/classes.py index 39aad3a..1a88dbb 100644 --- a/src/database/classes.py +++ b/src/database/classes.py @@ -3,6 +3,7 @@ from pydantic import BaseModel, field_validator, field_serializer from PIL import Image from io import BytesIO from pathlib import Path +from base64 import b64encode from src.model_experiential import ExperientialModelOutput from src.model_interpersonal import ( @@ -36,7 +37,7 @@ class ModelOutputs(BaseModel): class VisualCommunication(BaseModel): name: str - image: Image.Image | BytesIO | bytes + image: Image.Image annotation: ModelOutputs | None = None prediction: ModelOutputs | None = None @@ -73,3 +74,15 @@ class VisualCommunication(BaseModel): def __repr__(self) -> str: return f"{self.classname()}(name='{self.name}')" + + def webencoded_image(self) -> str: + """Convert image to be displayed on webpage.""" + # convert images to bytes string + buffer = BytesIO() + self.image.save(buffer, format="png") + img_enc = b64encode(buffer.getvalue()).decode("utf-8") + return img_enc + + +class NoDocumentFoundException(Exception): + pass