Spaces:
Sleeping
Sleeping
| import base64 | |
| import streamlit as st | |
| # From https://stackoverflow.com/questions/73251012/put-logo-and-title-above-on-top-of-page-navigation-in-sidebar-of-streamlit-multi | |
| # See also https://arnaudmiribel.github.io/streamlit-extras/extras/app_logo/ | |
| def get_base64_of_bin_file(png_file): | |
| with open(png_file, "rb") as f: | |
| data = f.read() | |
| return base64.b64encode(data).decode() | |
| def build_markup_for_logo( | |
| png_file, | |
| background_position="50% 10%", | |
| margin_top="10%", | |
| padding="20px", | |
| image_width="80%", | |
| image_height="", | |
| ): | |
| binary_string = get_base64_of_bin_file(png_file) | |
| return """ | |
| <style> | |
| [data-testid="stSidebarNav"] { | |
| background-image: url("data:image/png;base64,%s"); | |
| background-repeat: no-repeat; | |
| background-position: %s; | |
| margin-top: %s; | |
| padding: %s; | |
| background-size: %s %s; | |
| } | |
| </style> | |
| """ % ( | |
| binary_string, | |
| background_position, | |
| margin_top, | |
| padding, | |
| image_width, | |
| image_height, | |
| ) | |
| def add_logo(png_file): | |
| logo_markup = build_markup_for_logo(png_file) | |
| st.markdown( | |
| logo_markup, | |
| unsafe_allow_html=True, | |
| ) |