Bonjour,
Voila comme le titre l'indique, je suis à la recherche d'une méthode pour réaliser un zoom d'une image venant d'une caméra.
Pour info, j'utilise dsj.
Merci d'avance
Bonjour,
Voila comme le titre l'indique, je suis à la recherche d'une méthode pour réaliser un zoom d'une image venant d'une caméra.
Pour info, j'utilise dsj.
Merci d'avance
De quel type d'image dispose tu une BufferedImage, une Image AWT (enfin dans les deux cas la façon de procéder est la même.
Il faut créer ton propre composant utilisant cette image pour faire le dessin en héritant de JComponent et en redéfinissant la méthode paintComponent, et en utilisant les graphics fournis en paramètre afin de dessiner une portion de l'image au moyen de cette version de la méthode drawImage
C'est un Component. Je l'a recupère avec la méthode :
ImgBox etant un JPanel qui me permet d'afficher l'image.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this.mv.getImageView().getImgBox().add(DSFiltergraph.asComponent());
J'avais pensé à ta méthode mais pense tu que l'image va quand même continuer à défiler en mode zoomer?
Une approche que j'ai deja utilisé et qui marche correctement. (sans perte de la vidéo ni rien)
Tu met ton composant dans un jScrollPane. Et pour zoomer tu change la taille de ton panel dans ton JSP. et tu aura un zoom.
Une idée assez simple à mettre en place et qui a un résultat satisfaisant.
Cela me parait une bonne méthode mais je n'arrive pas à la mettre en place. Surement un problème de JScrollpane.
Lorsque je fais une sélection avec la souris, j'appelle la méthode zoom() qui fait :
Elle va donc chercher mon JPanel (imgBox) qui contient mon image et le redimensionne convenablement. Seulement ensuite, l'image ne prend pas toute la place disponible dans mon JPanel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part this.mv.getImageView().getImgBox().setPreferredSize(new Dimension(Math.abs(Presse_X-Release_X), Math.abs(Presse_Y-Release_Y));
On dirait que mon Scrollpane ne repère pas la taille de mon JPanel.
Voici le code de ma vue contenant mon image.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public class imageView extends JInternalFrame { private JLabel coord; private JPanel imgBox; private JScrollPane jsPane; public imageView(mainView pMv) { super("Image", true, //resizable false, //closable false, //maximizable false);//iconifiable imgBox = new JPanel (); jsPane = new JScrollPane(); //Le label des coordonnées coord = new JLabel("Coordonnées"); coord.setVisible(false); //Le JScrollPane jsPane = new JScrollPane(imgBox); jsPane.getViewport().add(imgBox); getContentPane().setLayout(new BorderLayout()); getContentPane().add(jsPane,BorderLayout.CENTER); getContentPane().add(coord,BorderLayout.SOUTH); this.setPreferredSize(new Dimension(800, 600)); this.pack(); } }
Partager