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 :
Dans ImgTools, la fonction rotate contient le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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));
Le résultat que j'obtiens est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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;
Mon image de départ :
J'entre l'angle de rotation que je veux : 45°
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.
Si je réitère la rotation, la rotation se fera sur cette nouvelle image tronquée
Voilà, j'espère que vous saurez m'aider à résoudre ce problème.
Partager