@@ -85,9 +85,7 @@ def render_marker_object(self, marker: Marker) -> None:
8585
8686 def render_image_marker_object (self , marker : ImageMarker ) -> None :
8787 group = self ._draw .g (clip_path = "url(#page)" )
88- image_data = marker .image_data ()
89- image_type = self .guess_image_mime_type (image_data )
90- image = f"data:{ image_type } ;base64,{ base64 .b64encode (image_data ).decode ('utf-8' )} "
88+ image = SvgRenderer .create_inline_image (marker .image_data ())
9189 x , y = self ._trans .ll2pixel (marker .latlng ())
9290 x_count = math .ceil (self ._trans .image_width () / (2 * self ._trans .world_width ()))
9391 for p in range (- x_count , x_count + 1 ):
@@ -163,8 +161,7 @@ def fetch_tile(
163161 image_data = download (self ._trans .zoom (), x , y )
164162 if image_data is None :
165163 return None
166- image_type = self .guess_image_mime_type (image_data )
167- return f"data:{ image_type } ;base64,{ base64 .b64encode (image_data ).decode ('utf-8' )} "
164+ return SvgRenderer .create_inline_image (image_data )
168165
169166 @staticmethod
170167 def guess_image_mime_type (data : bytes ) -> str :
@@ -173,3 +170,8 @@ def guess_image_mime_type(data: bytes) -> str:
173170 if data [1 :4 ] == b"PNG" :
174171 return "image/png"
175172 return "image/png"
173+
174+ @staticmethod
175+ def create_inline_image (image_data : bytes ) -> str :
176+ image_type = SvgRenderer .guess_image_mime_type (image_data )
177+ return f"data:{ image_type } ;base64,{ base64 .b64encode (image_data ).decode ('utf-8' )} "
0 commit comments