Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/10/2008, à 19:56

polyopath

[Resolu] Script de redimentionnement par lot de wallpaper

Salut a tous,

Etant ferru de belles images en fond d'ecran, j'en ai accumulé un nombre considerable au fil du temps...

Le probleme est que beaucoup de celles-ci ont une resolution superieure a celle de mon ecran, et que d'autres ont une resolution bien inferieure a celui-ci m'empechant d' utiliser le mode "Redimentionné" sous peinne d'affecter gandement la qualitée d'affichage.

Je me suis donc mis a chercher un programme ou un script qui me redimmentionnerait seulement les images depassant la resolution de mon ecran pour que celle-ci pussent y etre affichées entierement tout en preservant le ratio.
Mais malheuresement mes recherches sont infructueuses, je me suis donc mis en tête d'ecrire un script utilisant imageMagick pour la collecte des infos de l'image et son redimentionnement si elle n'est pas inferieure a la resolution de mon ecran...

Etant debutant dans la creation de scripts (mais alors denué de toutes conaissances dans ce domainne), je bloque deja sur la recuperation de la resolution de l'image avec imageMagick.

J'utilise la commande "identify" ce qui me donne:

$ identify ~/Images/Wallpapers/4040bb718dccdd7d.jpg 
Images/Wallpapers/4040bb718dccdd7d.jpg JPEG 500x757 500x757+0+0 DirectClass 8-bit 120.344kb

Donc avec un petit "awk" :

$ identify ~/Images/Wallpapers/4040bb718dccdd7d.jpg | awk '{print $3}'
500x757

Je bloque donc sur la separation des valeurs largeur et hauteur a cause du "x" entre les deux, et et a l'utilisation de celle ci comme variables...

Je vous remercie d'avance pour un petit coup de pouce, ou pour m'aider dans ce projet...

Dernière modification par polyopath (Le 29/10/2008, à 22:36)

Hors ligne

#2 Le 29/10/2008, à 20:29

Link31

Re : [Resolu] Script de redimentionnement par lot de wallpaper

En Bash :

fichier="$HOME/Images/Wallpapers/4040bb718dccdd7d.jpg"
taille=$(identify "$fichier" | awk '{print $3}')
taille_x=$(cut -d'x' -f1 <<< "$taille")
taille_y=$(cut -d'x' -f2 <<< "$taille")
echo "Taille de l'image : X=${taille_x}, Y=${taille_y}"

Ou plus subtil :

fichier="$HOME/Images/Wallpapers/4040bb718dccdd7d.jpg"
eval $(identify "$fichier" | awk '{print $3}' | sed 's/\([0-9]*\)x\([0-9]*\)/taille_x=\1; taille_y=\2;/')
echo "Taille de l'image : X=${taille_x}, Y=${taille_y}"

Dernière modification par Link31 (Le 29/10/2008, à 20:31)

Hors ligne

#3 Le 29/10/2008, à 20:51

polyopath

Re : [Resolu] Script de redimentionnement par lot de wallpaper

Merci pour cette reponse, je vais pouvoir m'y metre serieusement tongue

J'ai modifier le titre du poste et je ne le ferme pas, si d'autres personnes personnes sont interessées par ce projet elles sont les bienvenues.

EDIT:

Link juste un petit truc t'a inversé X et Y

Correction:

fichier="$HOME/Images/Wallpapers/4040bb718dccdd7d.jpg"
taille=$(identify "$fichier" | awk '{print $3}')
taille_y=$(cut -d'x' -f1 <<< "$taille")
taille_x=$(cut -d'x' -f2 <<< "$taille")
echo "Taille de l'image : Y=${taille_y}, X=${taille_x}"

Dernière modification par polyopath (Le 29/10/2008, à 21:15)

Hors ligne

#4 Le 29/10/2008, à 21:44

Link31

Re : [Resolu] Script de redimentionnement par lot de wallpaper

polyopath a écrit :

juste un petit truc t'a inversé X et Y

Je ne pense pas, non.

Une version encore plus simple :

fichier="$HOME/Images/Wallpapers/4040bb718dccdd7d.jpg"
eval $(identify -format "taille_x=%w; taille_y=%h;" "$fichier")
echo "Taille de l'image : X=${taille_x}, Y=${taille_y}"

Dernière modification par Link31 (Le 29/10/2008, à 21:46)

Hors ligne

#5 Le 29/10/2008, à 21:53

Alain.g

Re : [Resolu] Script de redimentionnement par lot de wallpaper

Bonsoir

Il est possible d'ordonner à Imagemagick de redimensionner uniquement si l'image est plus grande que les dimensions données en utilisant > (qu'il faut échapper pour qu'il ne soit pas interprété comme un redirection)

http://www.imagemagick.org/www/command-line-options.html#resize

Dernière modification par Alain.g (Le 29/10/2008, à 21:54)


Xubuntu Karmic !

Hors ligne

#6 Le 29/10/2008, à 21:54

polyopath

Re : [Resolu] Script de redimentionnement par lot de wallpaper

Ben dans une resolution on donne d'abord la largeur avant la hauteur
ex: 1280x800
mais conventionnelement dans un graphique
x est l'absice (horizontal) et y l'ordonnée (vertical)

sinon tes lignes sont bonnes

bon maintenant je suis en train de faire un tour sur les cours shell pour integrer des parametres (resolution de l'ecran) a la commande et pour faire un traitement par lot pour arriver a un resultat comme celui-ci:

./script.sh -l 1280 -h 800 ~/Images/Wallpaper/*.*

EDIT: Merci Alain.g je vais regarder ca, je pense que ca va me simplifier la tâche

EDIT1: Alain.g ta comande fonctionne a merveille je te remercie beaucoup

Donc la commande pour une resolution de 1280x800 est :

mogrify -resize '1280x800>' ~/repertoire/*.*

bien sûr il faut qu'il n'y ai que des images dans votre repertoire

cool, bon ben je passe le topic en resolu... merci a tous

Dernière modification par polyopath (Le 29/10/2008, à 22:36)

Hors ligne