(Courriels de diversion: <prosternez@prêchant-enteriner.com> <stabilite@cortege-dirigisme.com> <improvisez@geophysique-pallia.com> <affirmons@secousses-devaluerent.com> <cultivee@camps-scruterez.com> <egal@appesantissiez-debarrassant.com> <canisses@redefinir-endormiras.com> <voltigeurs@phones-pêcha.com> <exteriorisation@orthogonal-inoperabilites.com> <exagereras@deboise-tonicite.com> )
Nath a écrit : > > Bonjour, > > Ci-dessous un msg de Franz que je vous transmet. si vous pouvez l'aider ? > Merci. > > " Je cherche s'il existe une solution batch au problème suivant : > - soit 100 fichier contenant chacun une image PNG de 4000x4000 en x > couleurs > - générer 400 fichiers PNG de même x couleurs mais de dimension > 2000x2000 > - éventuellement pouvoir paramétrer la dimension en sortie en sachant > que ce > sera toujours un sous-multiple de la dimension de départ. > > Quelqu'un aurait-il ça? " > > Nath > > J'avais fait ça il y a quelques temps pour me faire des images de taille fixe à partir de photos. Comme je ne suis pas programmeur, j'ai fait ça en bash avec "convert". C'est pas beau mais ça marchait. Ci-après le script à nettoyer si ça peut répondre à la demande : #!/bin/bash origine=`echo $1` destination=`echo $2` modele="/home1/services/martin/modele" RESH=384 RESL=512 qualite=50 if [ "$1" = "" ]; then exit 0 fi if [ "$2" = "" ]; then exit 0 fi mkdir -p $destination/images mkdir -p $destination/vignettes mkdir -p $destination/pages mkdir -p $destination/images/originaux cp $modele/images/*.gif $destination/images cp $modele/entete.html $destination/index.html nombre=`ls $origine/*.jpg | wc -l` iteration=1 noms=1 compteur=1 for a in `ls $1/*.jpg`; do b=`echo $a | sed s/$origine//g | sed 's/\///g'` echo $b > $noms noms=`expr $noms + 1` done #for i in `find $1 -name "*.jpg"`; do for i in `ls $1/*.jpg`; do echo $i j=`echo $i | sed s/$origine//g | sed 's/\///g'` # detection de l'orientation de l'image hauteur=`identify -format %h $i` largeur=`identify -format %w $i` orientation=`expr $hauteur / $largeur` # copie des fichiers originaux cp $i $destination/images/originaux/$j # creation des images if [ "$orientation" = "0" ]; then convert -geometry $RESHx$RESL -quality $qualite -density 72x72 $i $destination/images/$j else convert -geometry $RESLx$RESH -quality $qualite -density 72x72 $i $destination/images/$j fi jpegtran -optimize $destination/images/$j > optimise.jpg mv optimise.jpg $destination/images/$j # creation des vignettes if [ "$orientation" = "0" ]; then convert -geometry 56x75 -quality 50 -density 72x72 $i $destination/vignettes/$j else convert -geometry 75x56 -quality 50 -density 72x72 $i $destination/vignettes/$j fi jpegtran -optimize $destination/vignettes/$j > optimise.jpg mv optimise.jpg $destination/vignettes/$j # creation de l'index fichier=`echo $j | sed 's/.jpg//g'` if [ "$compteur" = "1" ]; then echo ' <TR>' >> $destination/index.html echo ' <!-- Vignettes avec hyperliens -->' >> $destination/index.html echo '<TD align="center"> <A href="pages/fichier.html"><IMG src="vignettes/fichier.jpg" border="0" alt="fichier"></A> </TD>' | sed s/fichier/$fichier/g >> $destination/index.html else if [ "$compteur" = "6" ]; then compteur=0 echo '<TD align="center"> <A href="pages/fichier.html"><IMG src="vignettes/fichier.jpg" border="0" alt="fichier"></A> </TD>' | sed s/fichier/$fichier/g >> $destination/index.html echo ' </TR>' >> $destination/index.html else echo '<TD align="center"> <A href="pages/fichier.html"><IMG src="vignettes/fichier.jpg" border="0" alt="fichier"></A> </TD>' | sed s/fichier/$fichier/g >> $destination/index.html fi fi compteur=`expr $compteur + 1` # creation des pages html if [ "$iteration" = "1" ]; then nombre_suivant=`expr $iteration + 1` fichier_suivant=`cat $nombre_suivant | sed 's/.jpg//g'` cat $modele/pages/modele_debut.html | sed s/photo/$j/g | sed s/suivant/$fichier_suivant/g > $destination/pages/$fichier.html else if [ "$iteration" = $nombre ]; then nombre_precedent=`expr $iteration - 1` fichier_precedent=`cat $nombre_precedent | sed 's/.jpg//g'` cat $modele/pages/modele_fin.html | sed s/photo/$j/g | sed s/precedent/$fichier_precedent/g > $destination/pages/$fichier.html else nombre_precedent=`expr $iteration - 1` fichier_precedent=`cat $nombre_precedent | sed 's/.jpg//g'` nombre_suivant=`expr $iteration + 1` fichier_suivant=`cat $nombre_suivant | sed 's/.jpg//g'` cat $modele/pages/modele.html | sed s/photo/$j/g | sed s/suivant/$fichier_suivant/g | sed s/precedent/$fichier_precedent/g > $destination/pages/$fichier.html fi fi iteration=`expr $iteration + 1` done cat $modele/fin.html >> $destination/index.html noms=1 for a in `find $1 -name "*.jpg"`; do b=`echo $a | sed s/$origine//g | sed 's/\///g'` rm -f $noms noms=`expr $noms + 1` done -- Gilles --------------------------------------------------------------------- Aide sur la liste: <URL:mailto:linux-31-help@CULTe.org>Le CULTe sur le web: <URL:http://www.CULTe.org/>