added function to encode image for webview

This commit is contained in:
Brian Bjarke Jensen
2024-02-23 23:27:46 +01:00
parent 19d62eb5f2
commit 59c648888d
+14 -1
View File
@@ -3,6 +3,7 @@ from pydantic import BaseModel, field_validator, field_serializer
from PIL import Image from PIL import Image
from io import BytesIO from io import BytesIO
from pathlib import Path from pathlib import Path
from base64 import b64encode
from src.model_experiential import ExperientialModelOutput from src.model_experiential import ExperientialModelOutput
from src.model_interpersonal import ( from src.model_interpersonal import (
@@ -36,7 +37,7 @@ class ModelOutputs(BaseModel):
class VisualCommunication(BaseModel): class VisualCommunication(BaseModel):
name: str name: str
image: Image.Image | BytesIO | bytes image: Image.Image
annotation: ModelOutputs | None = None annotation: ModelOutputs | None = None
prediction: ModelOutputs | None = None prediction: ModelOutputs | None = None
@@ -73,3 +74,15 @@ class VisualCommunication(BaseModel):
def __repr__(self) -> str: def __repr__(self) -> str:
return f"{self.classname()}(name='{self.name}')" 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