Bonjour,
J'aurai aimé votre avis pour réduire la taille des images et ainsi gagner en espace sur mon ftp.
J'ai actuellement des images en 2000px pour la plus grande des 2 longueurs.
Avec le temps cela prend de l'espace et j'arrive au bout.
J'aimerai baiser la taille des images actuellement sur le ftp pour descendre à 1280 px par exemple.
Le plus simple est de télécharger les dossier,s de réduire la taille en lot et de les écraser sur le ftp.
Cela vous parait-il judicieux ou feriez-vous autrement ?
Merci de vos avis, et surtout merci à l'équipe piwigo car je l'aime bcp !!
Damien
Version de Piwigo: 12.2
Version de PHP: 7.4
Version de MySQL: ??
URL Piwigo: https://phototheque.damienlachas.com
Hors ligne
Bonjour,
attention à ne pas perdre toutes les informations que tu as mis dans Piwigo sur chaque image.
Tu as ajouté comment les photos ?
perso je dirais que pour 2000 photos je regarderais plutôt pour faire cela en ligne
tu utilise quoi comme librairie graphique ?
Hors ligne
Bonjour,
ici on parle de 18 000 photos.
Avec des grands dossiers, le plus grand faisant 2000 images.
En passant lightrrom et consort , je ne perds rien des iptc et exif. je conserve et élimine ce que je veux.
En effet en ligne c'est un option.
J'ai imagemagick.
Et donc logiquement je devrai pouvoir l'utiliser en ssh.
Damien
Hors ligne
Bonjour,
La meilleur solution serait de faire un plugin qui ajoute cette action dans la gestion par lot
Hors ligne
Bonjour, voici quelques éléments de recherches personnelles.
Instructions de redimensionnement pour ImageMagick. (Dans les extrait de codes suivants, j'ai été intéressé alternativement par les suffixes de dimension ">" ou "^" ; donc attention).
https://legacy.imagemagick.org/Usage/resize/
convert $i -resize 1920x1080> $i; # Écrase fichier original
Il est aussi possible de diminuer la qualité, descendre à 80% (voire 70% ou en deçà ?) me parait raisonnable.
https://legacy.imagemagick.org/discours … hp?t=29529
convert $i -resize 1920x1080> -quality 80 $i; # Écrase fichier original
Pour boucler sur la liste des images jpg présentes dans une arborescence
for image in `find -L "/path/to/gallery/" -type f -name "*.jpg"` ; do echo $image ; done ;
Script de redimensionnement qui fera en sorte qu'en affichage "1 pixel image par pixel écran" la matrice de pixels 1920x1080 soit complétement recouverte, si possible ; c'est à dire qu'une image plus petite ne sera pas agrandie. Préfixe $pre non vide : ce script prend pour paramètre une image dans le dossier d'exécution, sinon un chemin vers l'image.
#!/bin/bash i=$1 # dimensions dim='1920x1080^' # qualité q='80%' # préfixe pre='r01-' # N'écrase pas l'image originale pre='' # Écrase l'image originale ### # Par défaut cette instruction de redimensionnement peut agrandir une petite image. # Des précautions sont donc prises pour l'éviter. ### # Dimensions largeur $iw hauteur $ih iw=`exiftool $i 2>&1 | awk -F ":" '$1 ~ /^Image Width/ { print $2 }'` ih=`exiftool $i 2>&1 | awk -F ":" '$1 ~ /^Image Height/ { print $2 }'` if [ -z $iw -o -z $ih ]; then continue ; fi # Format horizontal $fh vertical $fv carré $fc fh=$(($iw>$ih)) fv=$(($iw<$ih)) fc=$(($iw==$ih)) if [ "$fh" -eq 1 ]; then \ if [ "$ih" -gt "1080" ]; then \ convert $i -resize $dim -quality $q $pre$i else echo 'petit format horizontal -' $iw x $ih fi elif [ "$fv" -eq 1 ]; then if [ "$iw" -gt "1920" ]; then \ convert $i -resize $dim -quality $q $pre$i else echo 'petit format vertical -' $iw x $ih fi elif [ "$fc" -eq 1 ]; then if [ "$iw" -gt "1920" ]; then \ convert $i -resize $dim -quality $q $pre$i else echo 'petit format carré -' $iw x $ih fi else echo "Image format inconnu : $iw x $ih " fi
Hors ligne
Merci pour le partage, je pense que cela pourra servir à pas mal de monde.
As tu pu conserver les tags notamment les commentaires sur tes photo ?
As tu réussi à diminuer l'espace disque sur ton serveur ?
Hors ligne
Bonjour,
je prends enfin le temps ...
Après recherche et essais, la commande convert n'est pas récursive sur les images et le $i n'y change rien.
Cela ne s'applique qu'a une image dans un dossier donné en mettant le nom à la place de $i
On a la récursivité avec mogrify.
En revanche cela fonctionne très bien pour l'ensemble des images d'un même dossier, pas pour tous les dossiers et sous-dossiers contenant des images.
Donc:
mogrify -resize 50% -quality 80 *jpg
la ligne parle toute seule :)
Rentrer dans chaque dossier et taper cette ligne.
Si il y a 200 dossiers...ben tant pis, à la mano pour les parcourir :)
Bien sur, si je trouve la récursivité avec le dossiers, je vous préviens.
NB : imagemagick est installé sur mon serveur par mon hébergeur, ce qui facilite la chose.
Damien
Hors ligne
J'avais donné la commande pour lister toutes les images jpg d'un répertoire, mais je la redonne ici (sans les liens symboliques "-L") ; et puis s'il fallait ne lister que les dossiers, c'est possible aussi.
Voici donc pour parcourir l'arborescence de dossiers de la galerie pour en lister ses fichiers *.jpg:
#!/bin/sh racine_galerie=/path/to/piwigo/galleries/ for image in `find "$racine_galerie" -type f -name "*.jpg"` ; do \ echo $image done
Pour ne lister que les chemins des dossiers comportant des fichiers *.jpg :
#!/bin/sh racine_galerie=/path/to/piwigo/galleries/ for chemin in `find "$racine_galerie" -type f -name "*.jpg" -printf '%h\n' | sort -u` ; do \ echo $chemin done
Hors ligne