@@ -16,7 +16,9 @@ def decode_image_string(image_string):
1616 """
1717 Converts image string to numpy array.
1818 """
19- if "png" in image_string [:22 ]:
19+ if "webp" in image_string [:23 ]:
20+ return np .asarray (Image .open (BytesIO (base64 .b64decode (image_string [23 :]))))
21+ elif "png" in image_string [:22 ]:
2022 return np .asarray (Image .open (BytesIO (base64 .b64decode (image_string [22 :]))))
2123 elif "jpeg" in image_string [:23 ]:
2224 return np .asarray (Image .open (BytesIO (base64 .b64decode (image_string [23 :]))))
@@ -62,7 +64,7 @@ def test_automatic_zmax_from_dtype():
6264
6365
6466@pytest .mark .parametrize ("binary_string" , [False , True ])
65- @pytest .mark .parametrize ("binary_format" , ["png" , "jpg" ])
67+ @pytest .mark .parametrize ("binary_format" , ["webp" , " png" , "jpg" ])
6668def test_origin (binary_string , binary_format ):
6769 for i , img in enumerate ([img_rgb , img_gray ]):
6870 fig = px .imshow (
@@ -76,7 +78,9 @@ def test_origin(binary_string, binary_format):
7678 # The equality below does not hold for jpeg compression since it's lossy
7779 assert np .all (img [::- 1 ] == decode_image_string (fig .data [0 ].source ))
7880 if binary_string :
79- if binary_format == "jpg" :
81+ if binary_format == "webp" :
82+ assert fig .data [0 ].source [:15 ] == "data:image/webp"
83+ elif binary_format == "jpg" :
8084 assert fig .data [0 ].source [:15 ] == "data:image/jpeg"
8185 else :
8286 assert fig .data [0 ].source [:14 ] == "data:image/png"
0 commit comments