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 07/02/2010, à 17:18

Tomzz

Imagmagik positionnement

Bonjour,
J'ai fais un petit script nautilus basé sur imagmagik pour mettre en forme rapidement des images afin de les insérer sur un site web (oscommerce en l'occurrence).
Le but étant d'obtenir des images ayant toujours la même dimension en respectant les proportions d'origine.

Donc, dans le cas où les proportions d'origines ne permettent pas d'atteindre les dimensions souhaitées ( orientation Paysage dans un mode portrait par exemple) la plus grande dimension est réduite vers la plus grande cible, la plus petite réduite en proportion et un fond vient remplir la partie manquante à la petite dimension pour atteindre la taille cible.

Mon problème est que l'image redimensionnée est placée à partir du coin supérieur gauche de l'image totale:
snapshot1265559298.png
ou
snapshot1265559408.png

hors je souhaiterai qu'elle soit centrée (verticalement et horizontalement).

Voilà les lignes que j'utilise:

convert "$imag1" -resize 300x400 -strip -quality 50 -interlace line "$image"
  convert -page 300x400 "$image" -coalesce  "$image"

et le script complet, si il peut être utile à quelqu'un:

#!/bin/bash

printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |
while read -r arg
do
  ## traitement des espaces et caractères spéciaux dans le nom de fichier ##
  detox -v -s utf_8 "$arg" > /tmp/img.txt
  if [ $(wc -l /tmp/img.txt | cut -d' ' -f1) -gt "1" ]; then
  {
	  tail --lines=1 /tmp/img.txt > /tmp/img1.txt
	  varg=$(cat /tmp/img1.txt | cut -d'>' -f2 | sed 's/ //g')
	  echo "$varg" > /tmp/img2.txt
	  imag1=$(cat /tmp/img2.txt | sed 's/ //g')
	  image="${imag1##*/}.jpg"
	  rm /tmp/img.txt
	  rm /tmp/img1.txt
	  rm /tmp/img2.txt
  }
  else
  {
	  imag1="$1"
	  image="$1".jpg
  }
  fi
  
## redimentionnement et conversion de l'image ##
  convert "$imag1" -resize 300x400 -strip -quality 50 -interlace line "$image"
  convert -page 300x400 "$image" -coalesce  "$image"

  mv "$image" $HOME/fichiers-web/images-pretes/"$image"
done

Dernière modification par Tomzz (Le 07/02/2010, à 17:20)

Hors ligne

#2 Le 08/02/2010, à 15:13

Tomzz

Re : Imagmagik positionnement

Un p'tit up

Hors ligne

#3 Le 10/02/2010, à 23:18

Tomzz

Re : Imagmagik positionnement

Personne n'a d'idée ?

Hors ligne

#4 Le 11/02/2010, à 09:09

CasseTaTele

Re : Imagmagik positionnement

Salut,

c'est un peu bizarre de laisser autant de blanc sur des images, mais bon, en cherchant un peu j'ai trouvé ça sur le man de convert:

-page <width>x<height>{+-}<x offset>{+-
          }<y offset>{%}{!}{<}{>}
          preferred size and location of an image canvas.

          Use this  option  to  specify  the  dimensions  of  the
          Postscript page in dots per inch or a TEXT page in pix-
          els.

ici:
http://amath.colorado.edu/computing/sof … nvert.html

je pense qu'avec l'option offset tu peux peut-être centrer ton image mais il faut que l'offset dépende de la taille de l'image. Il y a aussi cet option offset sur l'option "-size".

Je n'ai pas essayé mais essaye de jouer avec cet offset, déjà en mettant un offset manuel fixe pour voir si ça décale bien l'image. Puis si ça marche, essaye de calculer cet offset en fonction de la taille.

Dernière modification par CasseTaTele (Le 11/02/2010, à 09:11)

Hors ligne