Создание карусели изображений в Streamlit: изучение нескольких методов на примерах кода

В этой статье блога мы рассмотрим различные методы создания карусели изображений с использованием Streamlit, популярной библиотеки Python для создания интерактивных веб-приложений. Карусель изображений — это динамический компонент, который отображает слайд-шоу изображений, позволяя пользователям перемещаться по ним. Мы обсудим различные подходы и приведем примеры кода для каждого метода. Давайте погрузимся!

Метод 1. Использование функций beta_expanderи imageStreamlit

import streamlit as st
def image_carousel(images):
    with st.beta_expander("Image Carousel"):
        for image in images:
            st.image(image)
# Usage
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
image_carousel(images)

Метод 2. Использование макета columnsи функций imageStreamlit

import streamlit as st
def image_carousel(images):
    cols = st.columns(len(images))
    for col, image in zip(cols, images):
        col.image(image)
# Usage
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
image_carousel(images)

Метод 3. Создание карусели изображений с помощью компонентов Streamlit

import streamlit as st
from streamlit_carousel import st_carousel
def image_carousel(images):
    st_carousel(images)
# Usage
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
image_carousel(images)

Метод 4. Создание карусели изображений с использованием HTML и CSS

import streamlit as st
def image_carousel(images):
    carousel_code = f"""
    <div class="carousel">
        {"".join(f'<img src="{image}" alt="Image">' for image in images)}
    </div>
    """
    st.markdown(
        """
        <style>
        .carousel {
            display: flex;
            overflow: scroll;
        }
        .carousel img {
            flex: 0 0 auto;
            width: 300px;
            height: 200px;
            object-fit: cover;
            margin-right: 10px;
        }
        </style>
        """,
        unsafe_allow_html=True,
    )
    st.markdown(carousel_code, unsafe_allow_html=True)
# Usage
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
image_carousel(images)

В этой статье мы рассмотрели несколько методов создания карусели изображений в Streamlit. Мы обсуждали использование встроенных функций Streamlit, таких как beta_expander, columnsи image. Мы также изучили возможность использования компонентов Streamlit и специального HTML/CSS для достижения желаемой функциональности карусели. Используя эти методы, вы можете улучшить свои приложения Streamlit, включив динамические карусели изображений.