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 : 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));
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
 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 :


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.