Rembourrage noir avec des images en java?


J'ai ce problème. J'utilise ce code pour faire pivoter une image mais l'image pivotée a un rembourrage noir dans ses coins en raison de la rotation. Comment pourrais-je l'enlever?

public static BufferedImage rotate(BufferedImage img, int angle) {
        rotate_checked = false;
        int w = img.getWidth();
        int h = img.getHeight();
        BufferedImage dimg =new BufferedImage(w, h,  BufferedImage.TYPE_BYTE_GRAY);
        Graphics2D g = dimg.createGraphics();
        g.rotate(Math.toRadians(angle), w/2, h/2);
        g.drawImage(img, null, 0, 0);
       return dimg;
} 
Author: maxlego, 2013-06-04

1 answers

Vous devez créer une image transparente:

BufferedImage tampon = gc.createCompatibleImage (hauteur, largeur, transparence.TRANSLUCIDE);

Où 'gc' est un objet Graphics2D. Vous pouvez également en créer un directement avec new BufferedImage() bien sûr, mais cela vous donnera l'image la plus efficace à utiliser pour votre contexte graphique particulier.

 0
Author: Richard Wilkes, 2013-06-04 20:48:59