Générer des Thumbnails en ligne de commande

Tagged:

Bon je sais pas si ça aidera quelqu'un mais moi ça m'a assez aidé !

Voici un script qui génère simplement des thumbnails (un aperçu d'une image mais en plus petit !) Je l'ai trouvé sur un forum fedora et je prépare un billet avec un certain nombre de screenshots, ça m'a bien fait gagner du temps !

#!/bin/bash
 
# verifying usage
if [ "$#" = "0" -o "$1" = "-h" -o "$1" = "--help" ]; then
	echo Usage : $(basename $0) image [ image ... ]
	echo Used to generate thumbnails of a list of images.
	exit 1
fi
 
# loop that enables the treatment of a list of images
for i in "$@"; do
	# verifying file
	if [ -f "$i" ]; then
		# get image infos
		iinfos=$(identify -format "%m:%wx%h:%t:%e:%b" "$i")
 
		# get image type
		itype=$(echo $iinfos | awk -F":" '{print $1}')
 
		# get image resolution
		resolution=$(echo $iinfos | awk -F":" '{print $2}')
 
		# get image name, without extension
		name=$(echo $iinfos | awk -F":" '{print $3}')
 
		# get extension
		extension=$(echo $iinfos | awk -F":" '{print $4}')
 
		# get image size
		size=$(echo $iinfos | awk -F":" '{print $5}')
 
		# convert size to human readable format
		if [ $size -ge 1048576 ]; then
			sizeh="$(( size / 1048576 )) Mo"
		elif [ $size -ge 1024 ]; then
			sizeh="$(( size / 1024 )) Ko"
		else
			sizeh="$size o"
		fi
 
		# resize image and add infos
		convert "$i" -resize 400x200 -gravity South -background Black -fill white -splice 0x18 -draw "text 0,2 '$itype : $resolution - $sizeh'" "$name"-thumb.$extension
	else
		echo "$i" : file does not exist
	fi
done

Comments

Pour info, «thumbnails» se traduit «miniatures» en frenchy ;-)

Celui qui sera intéréssé par un script en bash qu'on lance dans une console saura sans doute ce qu'est un thumbnails sans qu'on ai besoin de franciser ce terme =) mais merci pour la traduction !!!

Pour info, "screenshots" se traduit par "captures d'écran" en frenchy ;-)

Cela dit, merci de partager ce script :-)
Je le range dans un coin en attendant que cela serve (ca viendra vite).

Au passage, je découvre la comande "convert" qui semble très puissante. Elle ne se limite pas uniquement au redimensionnement mais peut faire bien plus (cf. convert --help pour la liste complète des possibilités)

Par contre, j'ai bien l'impression que la commande convert n'est disponible, d'après sa page man, que si vous avez installé le paquet imagemagick.

Quelqu'un peut-il confirmer ce point ?

Kewl :D

Je l'ai un poil modifier car je préfère avoir mes miniatures dans un dossier à part (genre /thumbs/).

Merci donc ;)