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 03/08/2009, à 10:52

GuyKPADJIK

[résolu] ImageMagick: Resize particulier, centrage et background

Bonjour à tous,

je cherche à faire quelque avec ImageMagick que je dois être le seul à vouloir faire parce que je ne trouve rien sur Google ou sur le forum.

Je voudrais redimensionner des images à une dimension précise (1440x900 dans mon cas):
- si l'image est plus grande, je veux diminuer la taille de l'image en gardant les proportions
- si l'image est plus petite, je ne veux pas l'agrandir
- dans les deux cas, je veux que le fond soit noir et l'image centrée:
    - si l'image était plus grande, qu'elle a été rétrécie mais que les proportions ne correspondent pas à du 1440x900, il y aura donc un peu d'espace sur les cotés gauche/droite ou haut/bas
    - si l'image était plus petite, il y a donc de l'espace sur les cotés gauche/droite et/ou haut/bas

J'ai réussi avec la commande suivante à redimensionner et à mettre le noir autour de mon image mais les images plus petite sont étirées (à cause d'extent) et donc, la qualité est moins bonne:

convert /path/image/source -resize 1440x900 -background black -gravity center -extent 1440x900 /path/image/dest

Si j'enlève extent, les petites images restent à leur taille...

Quelqu'un peut m'aider ?

Dernière modification par GuyKPADJIK (Le 03/08/2009, à 17:57)

Hors ligne

#2 Le 03/08/2009, à 11:42

loutre

Re : [résolu] ImageMagick: Resize particulier, centrage et background

Je ne t'apporte pas la solution, je n'ai ni imagemagick ni de terminal à portée de main sad

À mon avis, il faudrait faire un script plus évolué en conditionnant le traitement d'imagemagick par la taille de l'image. Celle-ci devrait être donnée par les données EXIF, retournée par la commande "identify" (voir le manuel de cette commande - l'option -size geometry renvoie les dimensions de l'image).

edit : voici un exemple de script évolué : http://www.posteet.com/view/1021. Il renomme les images selon les données EXIF. Tu peux t'en inspirer en partie.

Dernière modification par loutre (Le 03/08/2009, à 11:50)


=°.°=
J'ai éprouvé l'irrésistible désir d'aller porter ma jeune existence au-delà de l'horizon, là où l'espace et le vent offrent à l'homme une dimension que je voyais comme une éternité palpable. Mes blogs [url=http://[Merci de relire les règles]/d6wsyxp]au Tchad[/url], vers Compostelle.

Hors ligne

#3 Le 03/08/2009, à 11:53

GuyKPADJIK

Re : [résolu] ImageMagick: Resize particulier, centrage et background

Même en faisant comme ça, je ne sais pas créer une image de la taille voulue sans redimensionner l'image source et en mettant un fond tout autour de l'image source centrée.

Hors ligne

#4 Le 03/08/2009, à 11:57

loutre

Re : [résolu] ImageMagick: Resize particulier, centrage et background

Tu trouveras peut-être ici ton bonheur : http://linuxfr.org/forums/31/26738.html.

Cette commande ne redimensionne que si l'image DSCN4426 a une hauteur supérieure à 450 :

identify DSCN4426.jpg | perl -ne 'if(/(\d+)x(\d+)/) { if ($1 > 450) { `convert -resize 450x DSCN4426.jpg DSCN4426-resized.jpg` } }' && identify DSCN4426-resized.jpg

=°.°=
J'ai éprouvé l'irrésistible désir d'aller porter ma jeune existence au-delà de l'horizon, là où l'espace et le vent offrent à l'homme une dimension que je voyais comme une éternité palpable. Mes blogs [url=http://[Merci de relire les règles]/d6wsyxp]au Tchad[/url], vers Compostelle.

Hors ligne

#5 Le 03/08/2009, à 17:18

GuyKPADJIK

Re : [résolu] ImageMagick: Resize particulier, centrage et background

ben non, c'est pas ce que je veux non plus.

L'image finale doit être de la taille voulue (1440x900), c'est juste qu'il faut compléter par un fond noir et centrer l'image.

exemples:
- image de 1920x1200: resize en 1440x900. En gardant les proportions, ca donne pil poil 1440x900 (ca, j'arrive à le faire avec la commande donnée plus haut)
- image de 1600x1200: resize en 1440x900. En gardant les proportions, ca donne du 1200x900, il faut donc centrer horizontalement l'image et rajouter du noir sur les cotés gauche et droit (la commande donnée plus haut sait aussi le faire)
- image de 1440x900, rien à faire (c'est ok)
- image de 1024x768, pas de resize, mais il faut compléter l'image sur les 4 bords avec du noir pour former une image de 1440x900 tout en la centrant

En résumé, il n'y a que le cas d'une image plus petite où il faut compléter par un fond en fonction de la taille d'origine que je ne sais pas faire

Hors ligne

#6 Le 03/08/2009, à 17:56

GuyKPADJIK

Re : [résolu] ImageMagick: Resize particulier, centrage et background

Bon, ben j'ai trouvé smile

convert -resize "1440x900>" /path/image/source -gravity center -crop 1440x900+0+0\! -background black -flatten /path/image/test

Hors ligne

#7 Le 03/08/2009, à 18:20

loutre

Re : [résolu] ImageMagick: Resize particulier, centrage et background

Bien joué, je note l'astuce, ça m'intéresse !


=°.°=
J'ai éprouvé l'irrésistible désir d'aller porter ma jeune existence au-delà de l'horizon, là où l'espace et le vent offrent à l'homme une dimension que je voyais comme une éternité palpable. Mes blogs [url=http://[Merci de relire les règles]/d6wsyxp]au Tchad[/url], vers Compostelle.

Hors ligne

#8 Le 09/03/2011, à 20:16

JeanNono

Re : [résolu] ImageMagick: Resize particulier, centrage et background

Bonjour,

Je cherchais exactement cela, merci pour ce super travail.

A bientôt, Jean-Nono:cool:


1981 : Atom Acorn 1Mhz 12 Kio Ram - 1986 : PC 8086 4,77 Mhz - 1990 ; PCAT 386 - 2000 ; Pc 586 de compète...
2008 : Ubuntu puis Debian 6.0 et Gnome 2 sur Aspire One 150 à 1.6 Ghz 32 bits qui fonctionne toujours.
2013 - Linux MINT 13 Maya sur Aspire V5 à 1,0 Ghz 64 btis plus rapide !
L'important c'est le partage et l'échange...

Hors ligne