====== Images ====== * Choix de FileBird Lite : pour la gestion de dossiers virtuels * Simple Lightbox ==== Préparation des images ==== Voici une version interactive du script qui pose les questions à l’utilisateur pour chaque paramètre, ce qui le rend plus flexible et facile à utiliser sans modifier le code : Script interactif : prepare_images_interactive.sh dépendances (sudo apt-get install) imagemagick jpegoptim libimage-exiftool-perl #!/bin/bash # Demander les paramètres à l'utilisateur read -p "Dossier source (chemin absolu) : " SOURCE_DIR read -p "Dossier de sortie (chemin absolu) : " OUTPUT_DIR read -p "Préfixe pour les fichiers (ex: portfolio-) : " PREFIX read -p "Largeur max pour l'image principale (ex: 800) : " MAX_WIDTH read -p "Qualité JPG (0-100, ex: 60) : " QUALITY # Tailles des miniatures (comme WordPress) THUMB_SIZES=("150x150" "300x300" "768x768") # Créer le dossier de sortie s'il n'existe pas mkdir -p "$OUTPUT_DIR" # Vérifier que le dossier source existe if [ ! -d "$SOURCE_DIR" ]; then echo "Erreur : Le dossier source '$SOURCE_DIR' n'existe pas." exit 1 fi # Traiter chaque image for img in "$SOURCE_DIR"/*.{jpg,jpeg,png}; do if [ -f "$img" ]; then # Nouveau nom de fichier filename=$(basename -- "$img") new_filename="${PREFIX}$(echo "$filename" | tr ' ' '-' | tr -d '(){}[]' | tr '[:upper:]' '[:lower:]' | sed 's/\.[^.]*$//')" output_path="$OUTPUT_DIR/${new_filename}.jpg" # Redimensionner et convertir en JPG (image principale) echo "Traitement de $img..." if [[ "$img" == *.png ]]; then convert "$img" -resize "${MAX_WIDTH}x" -quality "$QUALITY" -strip "$output_path" else convert "$img" -resize "${MAX_WIDTH}x" -quality "$QUALITY" -strip "$output_path" fi # Générer les miniatures for size in "${THUMB_SIZES[@]}"; do thumb_path="$OUTPUT_DIR/${new_filename}-${size}.jpg" convert "$output_path" -resize "$size^" -gravity center -extent "$size" -quality "$QUALITY" -strip "$thumb_path" echo " Miniature générée : ${new_filename}-${size}.jpg" done # Optimiser l'image principale et les miniatures jpegoptim --max="$QUALITY" --strip-all "$output_path" >/dev/null 2>&1 for size in "${THUMB_SIZES[@]}"; do thumb_path="$OUTPUT_DIR/${new_filename}-${size}.jpg" jpegoptim --max="$QUALITY" --strip-all "$thumb_path" >/dev/null 2>&1 done # Supprimer les métadonnées exiftool -all= "$output_path" >/dev/null 2>&1 for size in "${THUMB_SIZES[@]}"; do thumb_path="$OUTPUT_DIR/${new_filename}-${size}.jpg" exiftool -all= "$thumb_path" >/dev/null 2>&1 done echo "Image traitée : ${new_filename}.jpg" fi done echo "Toutes les images et leurs miniatures ont été générées dans $OUTPUT_DIR" Comment utiliser ce script ? Rends le script exécutable : chmod +x prepare_images_interactive.sh Lance-le : ./prepare_images_interactive.sh Réponds aux questions : Dossier source (ex: /home/utilisateur/Images/projet) Dossier de sortie (ex: /home/utilisateur/Images/optimisees) Préfixe (ex: portfolio-) Largeur max (ex: 800) Qualité JPG (ex: 60) Exemple d’exécution : $ ./prepare_images_interactive.sh Dossier source (chemin absolu) : /home/moi/Images/projet Dossier de sortie (chemin absolu) : /home/moi/Images/optimisees Préfixe pour les fichiers (ex: portfolio-) : monprojet- Largeur max pour l'image principale (ex: 800) : 1024 Qualité JPG (0-100, ex: 60) : 70 Traitement de /home/moi/Images/projet/mon image.jpg... Miniature générée : monprojet-mon-image-150x150.jpg Miniature générée : monprojet-mon-image-300x300.jpg Miniature générée : monprojet-mon-image-768x768.jpg Image traitée : monprojet-mon-image.jpg Toutes les images et leurs miniatures ont été générées dans /home/moi/Images/optimisees ==== Chargement des images ==== * Nouveau dossier virtuel * Ajouter un fichier media : attention un peu lent attendre la fin du téléchargement si gd nb images (environ 1 min pour 25 images) ==== Insertion Galerie dans une page ====