Redimensionner des images en masse, d'un seul coup

Redimensionner des images en masse, d'un seul coup - Multimédia - Linux et OS Alternatifs

Marsh Posté le 25-05-2004 à 10:27:30    

Avec quel outil puis je redimensionner une vingtaines de photos en 640x480 (elles sont en 1600x1200) d'un seul coup ?

Reply

Marsh Posté le 25-05-2004 à 10:27:30   

Reply

Marsh Posté le 25-05-2004 à 10:27:57    

convert (paquet image magick)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
Reply

Marsh Posté le 25-05-2004 à 10:30:23    

Code :
  1. SIZE=640x480
  2. find . -type f -name "*.jpeg" -o -name "*.gif" -exec convert -size ${SIZE} {} {}_${SIZE} \;

Reply

Marsh Posté le 25-05-2004 à 10:31:20    

convert -resize 640x480 Texas01.jpg Texas01.jpg
 
 :jap:  
merci.
 
mais
convert -resize 640x480 * *
marche pas. je vois pas comment appliquer le 'convert -resize' à toutes les images du répertoire.


Message édité par Profil supprimé le 25-05-2004 à 10:37:40
Reply

Marsh Posté le 25-05-2004 à 10:48:07    

un petit script avec un
---
for fichier in *.jpg
do
convert -resize 640x480 $fichier $fichier
done
---
a quelque chose pres


---------------
Qui suis-je ? Que fais-je ? | phpLister | Perdu ? Vous êtes ici --> *
Reply

Marsh Posté le 25-05-2004 à 14:27:14    

jjgan a écrit :

un petit script avec un
---
for fichier in *.jpg
do
convert -resize 640x480 $fichier $fichier
done
---
a quelque chose pres

c'est à dire ? :D

Reply

Marsh Posté le 25-05-2004 à 15:43:37    

Ou bien :
 

Code :
  1. for f in `find . -type f -name "*.jpeg" -o -name "*.gif"`;
  2. do convert -resize 640x480 $f $f;
  3. done


 
Ca doit marcher ca non ?


Message édité par Gaellick le 25-05-2004 à 15:44:10
Reply

Marsh Posté le 25-05-2004 à 16:05:34    

Gaellick a écrit :

Ou bien :
 

Code :
  1. for f in `find . -type f -name "*.jpeg" -o -name "*.gif"`;
  2. do convert -resize 640x480 $f $f;
  3. done


 
Ca doit marcher ca non ?

tu peux m'aider vite fait à comprendre le code, sans passer 2h dans le man :D
 
for = boucle
f = une variable
le point dans `find ` = repertoire courant
-type f = type fichier
-name = dont le nom se termine par jpeg
-o = ou bien
$f = contenu de la variable f (ici, le retour de la commande qui se trouve après 'in'
 
est ce que j'ai juste ?
 
pour mon cas, c'est juste ca ?
 

Code :
  1. for image in `find . -type f -name "Texas*.jpg"`;
  2. do convert -resize 640x480 $image $image;
  3. done


Message édité par Profil supprimé le 25-05-2004 à 16:07:08
Reply

Marsh Posté le 25-05-2004 à 16:06:34    

mogrify, un petit programme issu du paquet imageMagick, et qui fait pleins de truc sympa "à la chaine".
 
mogrify -resize 40% *
 
 
cf : http://linuxfr.org/tips/265.html

Reply

Marsh Posté le 25-05-2004 à 16:06:41    

vi :)

Reply

Marsh Posté le 25-05-2004 à 16:06:41   

Reply

Marsh Posté le 25-05-2004 à 16:18:00    

Gaellick a écrit :

Ou bien :
 

Code :
  1. for f in `find . -type f -name "*.jpeg" -o -name "*.gif"`;
  2. do convert -resize 640x480 $f $f;
  3. done


 
Ca doit marcher ca non ?


 
Autant utiliser la fonction -exec de find non?

Reply

Marsh Posté le 25-05-2004 à 16:26:14    

j'ai vu ca aussi :
 
for img in *.jpg ;
do convert -resize 1024x768 $img $img;
done
 
:)

Reply

Marsh Posté le 25-05-2004 à 16:29:11    

jeep05 a écrit :

j'ai vu ca aussi :
 
for img in *.jpg ;
do convert -resize 1024x768 $img $img;
done
 
:)


 
la difference entre cela et la fonction find est au niveau des sous-repertoires: find les explores tous afin de trouver des fichiers correspondants, tandis que '*.jpg' est interprété par le shell et est remplacé par tout les fichiers correspondants dans le repertoire en cours.

Reply

Marsh Posté le 25-05-2004 à 17:18:34    

glor a écrit :

Autant utiliser la fonction -exec de find non?


 
Je ne sais pas si ca marche car il faut passer deux fichiers en parametres a convert : convert -resize 840x680 fichier fichier

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed