import streamlit as st from PIL import Image import io def images_to_pdf(uploaded_images): # Liste qui contiendra les objets Image image_list = [] for uploaded_file in uploaded_images: image = Image.open(uploaded_file) # Convertir l'image en mode RGB si nécessaire (pour la conversion en PDF) if image.mode != "RGB": image = image.convert("RGB") image_list.append(image) # Créer un flux mémoire pour stocker le PDF pdf_buffer = io.BytesIO() # Sauvegarder la première image et ajouter les autres pages image_list[0].save( pdf_buffer, format="PDF", resolution=100.0, save_all=True, append_images=image_list[1:] ) pdf_buffer.seek(0) return pdf_buffer def main(): st.title("Conversion d'Images en PDF") st.write("Uploader plusieurs images pour les convertir en un seul fichier PDF.") # Permet de télécharger plusieurs fichiers (types: png, jpg, jpeg) uploaded_files = st.file_uploader("Choisissez vos images", type=["png", "jpg", "jpeg"], accept_multiple_files=True) if uploaded_files: if st.button("Convertir en PDF"): pdf_file = images_to_pdf(uploaded_files) st.download_button( label="Télécharger le PDF", data=pdf_file, file_name="images_converties.pdf", mime="application/pdf" ) if __name__ == "__main__": main()