Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème de conversion d'Image et BufferedImage

Sujet résolu
    25 mars 2022 à 21:21:30

    Bonjour,

    Je suis coincé depuis plusieurs jours sur un problème de conversion et de manipulation d'images. J'ai des images que je souhaite pouvoir redimensionner et rogner. J'arrive à les redimensionner ou à les rogner, mais pas les deux en même temps parce que la fonction permettant de redimensionner l'image prend une BufferedImage en paramètre et renvoie une Image et la même chose pour la fonction permettant de rogner l'image. Or pour pouvoir utiliser les deux sur la même image, il faudrait nécessairement convertir l'image retourné en BufferedImage, ce que je n'ai pas réussi à faire. J'ai essayé par un simple cast, en utilisant ToolKit, mais à chaque fois que j'essaye de convertir, le programme plante avant même de démarrer. J'espère que je pourrai avoir une solution.

    Voilà la fonction pour redimensionner l'image : 

        public static Image getresizedimage(BufferedImage originalimage, int w, int h) {
            float width = originalimage.getWidth();
            float height = originalimage.getHeight();
            float scale = Math.max(w / width, h / height);
            Image resizedimage = originalimage.getScaledInstance((int) (scale * width),
                                                                 (int) (scale * height), Image.SCALE_SMOOTH);
            return resizedimage;
        }

    Et celle-ci pour rogner l'image : 

        public static Image cropImage(BufferedImage image, int x, int y, int width, int height) {
            return image.getSubimage(x, y, width, height);
        }
    • Partager sur Facebook
    • Partager sur Twitter
      25 mars 2022 à 22:46:49

      avec AWT et quelques optimisations pour ameliorer la qualite:

      BufferedImage inputImage = ...;
      BufferedImage outputImage = new BufferedImage(scaledWidth, scaledHeight, inputImage.getType());
      Graphics2D g2d = outputImage.createGraphics();
      g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
      g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
      g2d.drawImage(inputImage, 0, 0, scaledWidth, scaledHeight, null);
      g2d.dispose();
      
      //puis tu peux faire le crop



      • Partager sur Facebook
      • Partager sur Twitter
        26 mars 2022 à 18:31:17

        Merci beaucoup pour votre aide, tout fonctionne très bien maintenant, et la qualité de l'image est meilleure
        • Partager sur Facebook
        • Partager sur Twitter

        Problème de conversion d'Image et BufferedImage

        × 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