(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/>