@@ -96,7 +96,9 @@ async def source_to_bytes(source: str):
9696 return await f .read ()
9797
9898
99- async def image_to_base64 (source : str , max_image_pixels : int = 10000000 ) -> str :
99+ async def image_to_base64 (
100+ source : str , max_image_pixels : int = 10000000 , base64_prefix = "data:image"
101+ ) -> str :
100102 image_bytes = await source_to_bytes (source )
101103
102104 def process_image (image_bytes ):
@@ -118,16 +120,18 @@ def process_image(image_bytes):
118120 return output .getvalue ()
119121
120122 image_bytes = await asyncio .to_thread (process_image , image_bytes )
121- return f"data:image ;base64,{ base64 .b64encode (image_bytes ).decode ('utf-8' )} "
123+ return f"{ base64_prefix } ;base64,{ base64 .b64encode (image_bytes ).decode ('utf-8' )} "
122124
123125
124126# 512 * 1024 * 1024 bytes == 512MB
125- async def video_to_base64 (source : str , max_video_size : int = 512 * 1024 * 1024 ) -> str :
127+ async def video_to_base64 (
128+ source : str , max_video_size : int = 512 * 1024 * 1024 , base64_prefix = "data:video"
129+ ) -> str :
126130 video_bytes = await source_to_bytes (source )
127131 if len (video_bytes ) > max_video_size :
128132 return source
129133 else :
130- return f"data:video ;base64,{ base64 .b64encode (video_bytes ).decode ('utf-8' )} "
134+ return f"{ base64_prefix } ;base64,{ base64 .b64encode (video_bytes ).decode ('utf-8' )} "
131135
132136
133137async def table_to_base64 (source : str , max_table_size : int = 50 * 1024 * 1024 ) -> str :
0 commit comments