Problème de rotation d'image
Bonjour,
J'essaie de faire une rotation d'image ; elle fonctionne, mais pas correctement.
Mon image est incluse dans un JPanel, lui même inclus dans une JFrame
Pour faire appel au script de rotation, j'ai :
Code:
1 2 3 4 5 6 7 8 9
|
// Angle entré par l'utilisateur
int angle = Integer.parseInt(txt);
// Rotation de l'image
BufferedImage oldImg = ImgTools.rotate(image,angle,false); // fonction statique de la classe ImgTools
// Ajout de la nouvelle image dans le panel
panneau.setImage(new ImageIcon(oldImg)); |
Dans ImgTools, la fonction rotate contient le code suivant :
Code:
1 2 3 4 5 6 7 8 9
| BufferedImage bImage=ImgTools.getBufferedImage(icone);
int w = bImage.getWidth(null);
int h = bImage.getHeight(null);
AffineTransform transform = AffineTransform.getRotateInstance(Math.toRadians(angle), w/2, h/2);
AffineTransformOp op = new AffineTransformOp(transform, AffineTransformOp.TYPE_BILINEAR);
BufferedImage bImage2 = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
op.filter(bImage, bImage2);
if (whiteBackground) bImage2 = ImgTools.whiteBackground(bImage2);
return bImage2; |
Le résultat que j'obtiens est le suivant :
Mon image de départ :
http://amnesias.free.fr/etape0.JPG
J'entre l'angle de rotation que je veux : 45°
http://amnesias.free.fr/etape1.JPG
L'image fait bien une rotation mais est tronquée, si je regarde la taille de la nouvelle image, elle est identique à celle de départ, ce qui est illogique.
http://amnesias.free.fr/etape2.JPG
Si je réitère la rotation, la rotation se fera sur cette nouvelle image tronquée
http://amnesias.free.fr/etape3.JPG
Voilà, j'espère que vous saurez m'aider à résoudre ce problème.