Bonjour à tous,
je cherche à faire une appli permettant d'afficher, entre autres, une image raster sur laquelle on pourrait zoomer "en suivant la souris". Je m'explique :
J'ai quelque part une BufferedImage qui contient mon image raster à sa taille d'origine. J'ai aussi, associé à cette BufferedImage, un Rectangle représentant le Viewport, c'est à dire ce qui sera affiché sur mon Canvas graphique. Lorsque je veux zoomer sur une partie de l'image, je définis mon viewport relativement à cette partie, et je fais un(en gros)
Code : Sélectionner tout - Visualiser dans une fenêtre à part aBufferedImage.getSubImage(Viewport)
puis j'applique la transformation pour que cette sous-image s'adapte à la taille du Canvas ------> effet de zoom.
Tout se passe bien lorsque mon viewport est placé en (0,0) (coordonnées BufferedImage), mais le problème est que j'aimerais que le zoom de l'image se fasse "autour de la souris", c'est à dire définir de nouvelles coordonnées BufferedImage au Viewport pour qu'il englobe la souris, et que pour l'utilisateur la souris soit exactement au même endroit que pour le précédent viewport ! C'est plus des maths que du Java2D, mais je me perds un pêu entre les coordonnées Canvas, BufferedImage, AncienViewport et NouveauViewport....
Si quelqu'un à une idée ou connaît des sources, il sera le bienvenue
Merci d'avance
Partager