IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques en Java Discussion :

zoom de vidéo


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut zoom de vidéo
    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

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    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

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    C'est un Component. Je l'a recupère avec la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.mv.getImageView().getImgBox().add(DSFiltergraph.asComponent());
    ImgBox etant un JPanel qui me permet d'afficher l'image.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    J'avais pensé à ta méthode mais pense tu que l'image va quand même continuer à défiler en mode zoomer?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    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.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    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 :
    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));
    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.
    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();
           }
    }

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Dans ton JScrollPane tu lui insère un JPanel dans ce panel tu met un layout de type border.

    Ensuite dans le panel tu additionne ton imgBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    monPanel.add(imgBox, BorderLayout.CENTER);
    jsPane.getViewport().add(monPanel);
    Et essaye de voir si tu as toujours le même soucis.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    C'est bon j'ai trouvé un moyen en redimensionnant également l'image qui ressort de la caméra Ca fait bien 2 semaine que je suis la dessus il était temps que je m'en sorte.

    Il ne me reste plus qu'un petit soucis:
    Lorsque je me sert de mon scroll, l'image dans le panel n'est pas "repeinte", ce qui fait que je suis obligé de passer la souris sur un bout de l'image pour qu'elle s'affiche correctement.

    C'est mon dernier problème :'(

    Même si vous avez pas une réponse pour cela je vous remercie déjà beaucoup pour l'aide que vous m'avez apporté!!

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Essaye de forcer le repaint avec la méthode updateUI()

    Cela aura pour but de consommer tous les évènements graphique lié à ton jScrollPane.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    J'ai mis cela dans un listener comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    jsPane.getViewport().addChangeListener(new ChangeListener() 
    		{
    			public void stateChanged(ChangeEvent arg0) 
    			{
    				jsPane.updateUI();
    			}
    		});
    Cela ne change rien. Le repaint est fait seulement lorsqu'on a atteint le bord de l'image donc le milieu de l'image ne m'est pas visible :'(

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    Je n'ai pas tres bien saisie le problème.

    Ton image ne s'affiche pas du tout ? Sauf quand tu passe ta souris dessus.C'est ca ?

    Et ce problème n'arrive que si tu utilise le scrollBar ? ou meme quand tu fait ton zoom ?

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Lorsque je démarre la caméra, l'image s'affiche normalement dans l'emplacement qui lui est réservé dans le panel et si elle est trop grande les scroll apparaissent donc tout va bien.
    C'est quand je veux voir le reste de l'image, je fais glisser les scroll mais elle n'est pas mise à jour, donc je ne voit plus d'image.

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    humm ... Je sais que j'ai déja rencontré ce soucis, mais je ne sais plus du tout pourquoi. Vraiment désoler.

    Sinon autre solution que j'utilise pour de la vidéo, vlcj qui est une librairie qui utilise vlc.
    Et tu utilise la fonction setCropGeometry.

    lien du projet avec des sources exemples pour t'aider à comprendre.ici

    Si ca peu te dépanner. Maintenant pour revenir au soucis initial peu etre que quelqu'un pourra t'aider sur l'affichage de l'image.

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    D'accord pas de soucis merci beaucoup

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 107
    Par défaut
    je ne me rappel plus mais regarde du coter du viewport

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jScrollPane1.getViewport().updateUI();
    Car la il s'agit d'un soucis d'affichage. Car sans toucher au scrollPane tu as un rendu.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Non tjs pas J'ai essayé de l'appliquer sur le panel, j'ai tenté les validate, repaint et autres sur tous les composant de ma fenêtre mais sans succès.

  17. #17
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Essaie donc avec un Scrollpane AWT et non un JScrollPane.

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    oui mais alors la le soucis c'est que je connais pas du tous le Scrollbar de awt.

    Si vous connaissez des tuto pouvant m'indiquer comment attribuer un Scrollbar à mon JPanel ça sera déjà un bon début ^^.

    Je vais chercher de mon coté également.

  19. #19
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    C'est un container scrollant tout ce qu'il y a de plus standard, il s'utilise de fait comme un JScrollPane.

    cf javadoc: http://download.oracle.com/javase/6/...crollPane.html

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 109
    Par défaut
    Trop trop dégouté, j'ai passé 1 semaine à essayer de résoudre un problème que vous venez de me résoudre en 2 jours.

    Merci beaucoup à vous 2 et bonne continuation!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Zoom sur vidéo
    Par jlf dans le forum Delphi
    Réponses: 8
    Dernier message: 20/02/2007, 10h08
  2. [Composants][Animation] Lire une vidéo compressée
    Par femtosa dans le forum Composants VCL
    Réponses: 6
    Dernier message: 03/09/2002, 08h03
  3. Zoom avec du TJPEG
    Par Thylia dans le forum C++Builder
    Réponses: 3
    Dernier message: 17/06/2002, 16h03
  4. Vitesse de la mémoire vidéo
    Par Anonymous dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 06/06/2002, 20h20
  5. URGENT : Zoom et changement de repère
    Par poca10 dans le forum MFC
    Réponses: 5
    Dernier message: 28/05/2002, 13h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo