IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Changer les proportions d'une image


Sujet :

Traitement d'images

  1. #1
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut Changer les proportions d'une image
    Bonjour à tous,
    Je vous expose mon cas, jai un cadre à dimension fixe, par exemple 800x800 ou 200x100 puis j'ai des images de dimensions variables.

    Je fois redimensionner ces images, avec des bordures blanche autour de l'image, tout en gardant les proportions du cadre.

    Par exemple mon image est de 400x400 et mon cadre de 200x100, au final mon image sera de 800x400 avec une bordure blanche de 200px en haut et en bas.

    Comment puis je faire pour calculer les nouvelles dimensions de mon image à partir des dimensions de mon cadre??


    Merci de votre aide
    Greg

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Gregory.M Voir le message
    Par exemple mon image est de 400x400 et mon cadre de 200x100, au final mon image sera de 800x400 avec une bordure blanche de 200px en haut et en bas.
    ?

    Je dois être bête mais j'ai pas compris le calcul.

  3. #3
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    ?

    Je dois être bête mais j'ai pas compris le calcul.
    Le ratio du cadre est de 2 sur 1.
    Alors je dois l'appliquer à mon image, je multiplus par 2 sa hauteur

  4. #4
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    def add_padding(width,height)
     
      image = new image("/home/monimage.png)
     
      if ((width/height) >= 1) 
        image.height = image.height * (width/height)
      else
         image.width = image.width * (height/width)
      end
    end
    Un truc comme ca devrait fonctionner, vous en pensez quoi?

  5. #5
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 196
    Points : 202
    Points
    202
    Par défaut
    Bonjour,

    Je suis un peu ... Perdu dans tes explications ...

    J'aurais plutôt imaginé que l'image ai des dimensions inférieur ou égale au cadre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ratio_img <- W/H 
    ratio_cadre <- w/h
     
    si ratio_img > ratio_cadre
        W <- w
        H <- W/ratio_img
    sinon
        H <- h
        W <- ratio_img*H
    fsi
    Ici le sinon implique ratio_img <= ratio_cadre, le = pouvant etre n'importe ou.

    Et avec un background blanc ca match.

    Sauf erreur de ma part.

  6. #6
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Citation Envoyé par Clercq Voir le message
    Bonjour,

    Je suis un peu ... Perdu dans tes explications ...

    J'aurais plutôt imaginé que l'image ai des dimensions inférieur ou égale au cadre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ratio_img <- W/H 
    ratio_cadre <- w/h
     
    si ratio_img > ratio_cadre
        W <- w
        H <- W/ratio_img
    sinon
        H <- h
        W <- ratio_img*H
    fsi
    Ici le sinon implique ratio_img <= ratio_cadre, le = pouvant etre n'importe ou.

    Et avec un background blanc ca match.

    Sauf erreur de ma part.
    En fait ce n'est pas vraiment ca, car l'image ne doit pas rentrer dans le cadre mais prendre ces proportions

  7. #7
    Membre averti Avatar de Gregory.M
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    684
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 684
    Points : 309
    Points
    309
    Par défaut
    Voila ca fonctionne
    Le code est en ruby et j'utilise la librairie ImageMagick et le gem rmagick.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
      def self.add_padding(size,output, *files)
        x,y = size[:x], size[:y]
        files.flatten!
        files.each_with_index do |file, index|
          img = Magick::Image.read(file).first
          img.auto_orient!
          img_c = img.columns
          img_r = img.rows
          max = [img_c,img_r].max
     
          if x.quo(y).to_f == 1
            target = Magick::Image.new(max , max) { |image| image.background_color = COMPOSITE_BACKGROUND }
          else
            if x.quo(y).to_f > 1
              cadre_r = x.quo(y).to_f
              img_r = img.columns.quo(img.rows).to_f
              ratio = cadre_r - img_r
              width = img.columns + (img.columns * ratio)
              target = Magick::Image.new(width , img.rows) { |image| image.background_color = COMPOSITE_BACKGROUND }
            else
              cadre_r = y.quo(x).to_f
              img_r = img.rows.quo(img.columns).to_f
              ratio = cadre_r - img_r
              height = img.rows + (img.rows * ratio)
              target = Magick::Image.new(img.columns , height) { |image| image.background_color = COMPOSITE_BACKGROUND }
            end
          end
     
          target.composite!(img, Magick::CenterGravity, Magick::OverCompositeOp)
          target.write("jpg:#{output}")
          [target.columns, target.rows]
        end
      end # process

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/01/2008, 17h44
  2. [GD] Changer les dimensions d'une image
    Par neimad31 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 04/12/2007, 09h28
  3. Changer les META d'une image
    Par Malabouffe dans le forum C#
    Réponses: 6
    Dernier message: 25/08/2007, 08h08
  4. Changer les pixels dans une image
    Par mimane_01 dans le forum Images
    Réponses: 1
    Dernier message: 15/02/2007, 13h12
  5. [serieux] Changer les couleurs d'une image
    Par TabrisLeFol dans le forum La taverne du Club : Humour et divers
    Réponses: 5
    Dernier message: 14/12/2006, 13h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo