575 liens privés
Bon voici la version Linux. Je sais, c'est facile à faire pour beaucoup mais je suis sûr que certains seront content de se rappeler comment faire facilement.
#!/bin/bash
in_path=$1
out_path=$2for i in $in_path/*; do
out_file=$(basename $i)
jpegtran -optimize -outfile $out_path/$out_file $i
jpegtran -progressive -outfile $out_path/$out_file $i
jpegtran -grayscale -outfile $out_path/$out_file $i
done`
Alors évidemment, petit rappel : il faut simplement créer un fichier script-jpegtran.sh dans un dossier (par exemple /home/script/ ) et avec dans l'interface du terminal appeler cela avec les dossiers à traiter en argument :
sh /home/script/script-jpegtran.sh /home/Images/avant/ /home/Images/apres/
Il y a l'optimisation des images, la conversion en progressif et le passage en niveau de gris. Ces images sont pour un tuto sur internet où la couleur n'a pas d'importance --> je gagne encore du poids sur l'absence des filtres de couleurs (à vérifier...).
via http://bashscripts.org/forum/viewtopic.php?f=7&t=849
Edit : Confirmation :
1 - original ; 24 photos : 50.8Mo
2 - avec options optimize et progressive : 46.9Mo
3 - avec option grayscale (en plus) : 44.9Mo
Je m'attendais à un gain plus important mais c'est déjà ça.
Edit2 (20141104) :
Je viens de recevoir un signalement par email que la syntaxe ci-dessus est FAUSSE. Ou du moins ne fais pas ce que l'on espère. Je cite :
« il y a une faute d'innatention, les 3 commandes "jpegtran" prennent le fichier originale en entrée et écrivent sur le même fichier de sortie, donc il n'y a que la dernière optimisation qui est vraiment effectuée. »
(J'ai certainement synthétisé trop vite ici plusieurs commande que j'avais sur mon pc...)
On peut donc utiliser la syntaxe suivante (en plus c'est + court) :
#!/bin/bash
in_path=$1
out_path=$2for i in $in_path/*; do
out_file=$(basename $i)
jpegtran -optimize -progressive -grayscale -outfile $out_path/$out_file $i
done
Merci à l'utilisateur, de chez https://www.linuxmint-fr.org, qui a voulu rester anonyme.