contact / app.py
hackshaw's picture
Create app.py
ad95b8b verified
# app.py
import os
from PIL import Image
import streamlit as st
from utils import create_contact_sheet # Make sure to import the corrected function
st.set_page_config(
page_title="Contact sheet generator",
page_icon=None,
layout="wide",
initial_sidebar_state="auto"
)
accepted_extensions = (".jpg", ".jpeg", ".png")
def main():
st.title('Contact Sheet Generator')
output_dir = 'contact_sheets' # This should be a directory, not a file
image_files = st.file_uploader('Upload images', type=accepted_extensions, accept_multiple_files=True)
if st.button('Generate Contact Sheets'):
if image_files:
# Create the directory if it doesn't exist
os.makedirs("uploaded_images", exist_ok=True)
image_paths = []
for image_file in image_files:
file_path = os.path.join("uploaded_images", image_file.name)
with open(file_path, "wb") as f:
f.write(image_file.getbuffer())
image_paths.append(file_path)
num_sheets = create_contact_sheet(image_paths, output_dir)
# Display the contact sheets
for i in range(1, num_sheets + 1):
sheet_path = os.path.join(output_dir, f'contact_sheet_{i}.jpg')
st.image(sheet_path, caption=f'Generated Contact Sheet {i}', use_column_width=True)
# Clean up uploaded images
for file_path in image_paths:
os.remove(file_path)
if __name__ == "__main__":
main()