Image#
Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).
import panel as pn
pn.extension()
The Image
pane embeds any known image format file in panel if provided a local path, or will link to a remote image if provided with a URL.
The Image
pane functions as a sort of macro pane that selects one of the more specific image panes to display the image (whichever one first recognizes this particular image format).
Please refer to the API and source code.
The classmethod get_pane_type returns the pane_type that was selected.
Please consult the documentation of each specific pane (JPG, PNG, SVG, etc.) for the options that particular pane will support.
Parameters:#
For details on other options for customizing the component see the layout and styling how-to guides.
alt_text
(str, default=None): alt text to add to the image tag. The alt text is shown when a user cannot load or display the image.embed
(boolean, default=False): If given a URL to an image this determines whether the image will be embedded as base64 or merely linked to.fixed_aspect
(boolean, default=True): Whether the aspect ratio of the image should be forced to be equal.link_url
(str, default=None): A link URL to make the image clickable and link to some other website.object
(str or object): The Image file to display. Can be a string pointing to a local or remote file, or an object with a_repr_extension_
method, where extension is an image file extension.styles
(dict): Dictionary specifying CSS styles
The Image
pane can be pointed at any local or remote image file. If given a URL starting with http
or https
, the embed
parameter determines whether the image will be embedded or linked to:
jpg_pane = pn.pane.Image('https://assets.holoviz.org/panel/samples/jpeg_sample.jpeg')
png_pane = pn.pane.Image('https://assets.holoviz.org/panel/samples/png_sample.png')
webp_pane = pn.pane.Image('https://assets.holoviz.org/panel/samples/webp_sample.webp')
pn.Column(jpg_pane, png_pane, webp_pane)
We can scale the size of the image by setting a specific fixed width
or height
:
png_pane.clone(width=400)
Alternatively we can scale the width and height using the sizing_mode
:
pn.pane.Image(
'https://assets.holoviz.org/panel/samples/png_sample2.png', sizing_mode='scale_width'
)
You can add a caption to the image by using the caption
pn.pane.Image(
'https://assets.holoviz.org/panel/samples/png_sample2.png', sizing_mode='scale_width', caption='World Map'
)
Note that by default the aspect ratio of the image is fixed, and so there may be a gap beside or below the image even in responsive sizing modes. To override this behavior set fixed_aspect=False
or provide fixed width
and height
values.
PIL#
The Image pane will render any component that defines _repr_[png | jpeg | svg]_
methods including PIL images:
from PIL import Image, ImageDraw
im = Image.new(mode='RGB', size=(256, 256))
draw = ImageDraw.Draw(im)
draw.line((0, 0) + im.size, fill=128, width=5)
draw.line((0, im.size[1], im.size[0], 0), fill=128, width=5)
draw.rectangle([(96, 96), (160, 160)], fill=(0, 0, 128), width=10)
pn.pane.Image(im)
Open this notebook in Jupyterlite | Download this notebook from GitHub (right-click to download).