Partage
  • Partager sur Facebook
  • Partager sur Twitter

bug redimension image

Sujet résolu
    23 novembre 2010 à 13:15:49

    Bonjour à tous,

    Je souhaite comme le titre l'indique redimensionner une image, pour ce faire après quelques recherches sur google j'ai trouvé la fonction dont j'avais besoin : "scale" par contre le problème c'est que la qualité de mon image est dégradée. Les deux images sont jointes à ce post.

    Voici la première image :
    Image utilisateur

    Voici la seconde image
    Image utilisateur

    Comme vous pouvez le constater le qualité est dégragée.

    Voici la fonction qui me permet de réduire la photo :

    public void CopiePhoto2etReduction(File f) {
    
            
    
                 try{
                // recupere le chemin du fichier passe en parametre
             String CheminFichier = f.getPath();
             File t = new File (CheminFichier);
             String NomFichier = f.getName();
             //montre le chemin ou coller l'image
             File j = new File("C:/test3/test4.jpg");
             // réduit la taille de l'image
             //BufferedImage image = ImageIO.read(j);
    
             //copie l'image
             this.copyFile(t, j);
             BufferedImage image = ImageIO.read(j);
    
             //getImageRetaillée1(image, 69, 69);
    
               Image iR = this.scale2(image,69,69);
               BufferedImage im2 = this.toBufferedImage(iR);
               ImageIO.write(im2, "jpg", j);
               
            }catch (Exception e) {
                System.out.println(e);
            }
    
        }
    


    Je cherche depuis déjà quelques jours et je ne vois pas où se trouve le problème, si vous pouviez m'aider.

    Merci d'avance de votre aide.

    flk
    • Partager sur Facebook
    • Partager sur Twitter
      23 novembre 2010 à 13:50:32

      La fonction qui fait le job, c'est scale2, mais tu ne la détaille pas.

      Ce lien va te renseigner sur les méthodes a employer :

      redimensionner une image
      • Partager sur Facebook
      • Partager sur Twitter
        23 novembre 2010 à 13:52:26

        Salut hd29,

        Voici la fonction scale2

        public Image scale2(Image source, int width, int height) {
            /* On crée une nouvelle image aux bonnes dimensions. */
            BufferedImage buf = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
        
            /* On dessine sur le Graphics de l'image bufferisée. */
            Graphics2D g = buf.createGraphics();
            g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
            g.drawImage(source, 0, 0, width, height, null);
            g.dispose();
        
            /* On retourne l'image bufferisée, qui est une image. */
            return buf;
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          23 novembre 2010 à 14:17:29

          la fonction est correcte; as tu essayé avec une image type RGB au lieu de ARGB (qui gère en plus le canal alpha qui détermine la transparence de chaque pixel de l'image).
          • Partager sur Facebook
          • Partager sur Twitter
            23 novembre 2010 à 14:19:53

            Génial hd29 c'est exactement ce qui buggait le fait que ce soit en ARGB et non en RGB merci beaucoup pour ton aide ^^
            • Partager sur Facebook
            • Partager sur Twitter

            bug redimension image

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown