def test_st_image_PIL_array(self): """Test st.image with a PIL array.""" imgs = [ Image.new("RGB", (64, 64), color="red"), Image.new("RGB", (64, 64), color="blue"), Image.new("RGB", (64, 64), color="green"), ] st.image( imgs, caption=["some caption"] * 3, width=200, use_column_width=True, clamp=True, output_format="PNG", ) el = self.get_delta_from_queue().new_element self.assertEqual(el.imgs.width, -2) # locate resultant file in the file manager and check its metadata. from streamlit.elements.image import _PIL_to_bytes for idx in range(len(imgs)): file_id = _calculate_file_id( _PIL_to_bytes(imgs[idx], format="PNG"), "image/png" ) self.assertEqual(el.imgs.imgs[idx].caption, "some caption") self.assertTrue(file_id in media_file_manager) afile = media_file_manager.get(file_id) self.assertEqual(afile.mimetype, "image/png") self.assertEqual(afile.url, el.imgs.imgs[idx].url)
def test_st_image_PIL_image(self): """Test st.image with PIL image.""" img = Image.new("RGB", (64, 64), color="red") st.image(img, caption="some caption", width=100, output_format="PNG") el = self.get_delta_from_queue().new_element self.assertEqual(el.imgs.width, 100) self.assertEqual(el.imgs.imgs[0].caption, "some caption") # locate resultant file in the file manager and check its metadata. from streamlit.elements.image import _PIL_to_bytes file_id = _calculate_file_id(_PIL_to_bytes(img, format="PNG"), "image/png") self.assertTrue(file_id in media_file_manager) afile = media_file_manager.get(file_id) self.assertEqual(afile.mimetype, "image/png") self.assertEqual(afile.url, el.imgs.imgs[0].url)