Configure an image column in st.dataframe or st.data_editor.

The cell values need to be one of:

  • A URL to fetch the image from. This can also be a relative URL of an image deployed via static file serving. Note that you can NOT use an arbitrary local image if it is not available through a public URL.
  • A data URL containing an SVG XML like data:image/svg+xml;utf8,<svg xmlns=...</svg>.
  • A data URL containing a Base64 encoded image like data:image/png;base64,iVBO....

Image columns are not editable at the moment. This command needs to be used in the column_config parameter of st.dataframe or st.data_editor.

Function signature[source]

st.column_config.ImageColumn(label=None, *, width=None, help=None)


label (str or None)

The label shown at the top of the column. If None (default), the column name is used.

width ("small", "medium", "large", or None)

The display width of the column. Can be one of "small", "medium", or "large". If None (default), the column will be sized to fit the cell contents.

help (str or None)

An optional tooltip that gets displayed when hovering over the column label.


import pandas as pd
import streamlit as st

data_df = pd.DataFrame(
        "apps": [

        "apps": st.column_config.ImageColumn(
            "Preview Image", help="Streamlit app preview screenshots"

Still have questions?

Our forums are full of helpful information and Streamlit experts.