|
@@ -7,13 +7,14 @@ from typing import Any, Callable, List, Optional, Union, cast
|
|
from PIL.Image import Image as PIL_Image
|
|
from PIL.Image import Image as PIL_Image
|
|
|
|
|
|
from ..events import GenericEventArguments, MouseEventArguments, handle_event
|
|
from ..events import GenericEventArguments, MouseEventArguments, handle_event
|
|
-from .image import image_to_base64
|
|
|
|
|
|
+from .image import pil_to_base64
|
|
from .mixins.content_element import ContentElement
|
|
from .mixins.content_element import ContentElement
|
|
from .mixins.source_element import SourceElement
|
|
from .mixins.source_element import SourceElement
|
|
|
|
|
|
|
|
|
|
class InteractiveImage(SourceElement, ContentElement, component='interactive_image.js'):
|
|
class InteractiveImage(SourceElement, ContentElement, component='interactive_image.js'):
|
|
CONTENT_PROP = 'content'
|
|
CONTENT_PROP = 'content'
|
|
|
|
+ PIL_CONVERT_FORMAT = 'PNG'
|
|
|
|
|
|
def __init__(self,
|
|
def __init__(self,
|
|
source: Union[str, Path] = '', *,
|
|
source: Union[str, Path] = '', *,
|
|
@@ -62,7 +63,7 @@ class InteractiveImage(SourceElement, ContentElement, component='interactive_ima
|
|
|
|
|
|
def _set_props(self, source: Union[str, Path]) -> None:
|
|
def _set_props(self, source: Union[str, Path]) -> None:
|
|
if isinstance(source, PIL_Image):
|
|
if isinstance(source, PIL_Image):
|
|
- source = image_to_base64(source)
|
|
|
|
|
|
+ source = pil_to_base64(source, self.PIL_CONVERT_FORMAT)
|
|
super()._set_props(source)
|
|
super()._set_props(source)
|
|
|
|
|
|
def force_reload(self) -> None:
|
|
def force_reload(self) -> None:
|