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

EDT/SwingWorker Java Discussion :

Comment faire un clear sur un beufferedImage toutes les x secondes!


Sujet :

EDT/SwingWorker Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut Comment faire un clear sur un beufferedImage toutes les x secondes!
    salut je traite une petite imae video et je suis censé afficher le contenu suite à un traitement particulier , cet affichage est censé se faire toutes les x secondes...et je dosi momentanement effacer l'ancienen image avant de reiterer l'affichage ainsi de suite...comment je peux donc faire cela sachant que j'utilise l'objet graphics2D et bufferedImage comem suit :

    g.drawImage(bimg, 0, 0, this);
    ou :

    BufferedImage bimg;
    Graphics2D g ;

    donc comment proceder ?

    merci

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Salut,

    je pense que pour ce genre d'applications, la classe javax.swing.Timer est parfaite.

    Pour les vidéos, as-tu regardé du côté de JMF ? C'est fait pour ça (multimédia, réseau, etc). Mais c'est peut-être beaucoup pour ce que tu veux faire, à toi de voir.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    je veux juste savoir s'il ya une methode ou une possiblite pour que ce bufferedimage soit vidé en quelque sorte toutes les x secondes et reaffichée!! tu vois!

  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Oui, dans ce cas, tu utilises un Timer qui, toutes les x secondes réécrit l'image (ou en crée une nouvelle), puis appelle repaint sur le composant sur lequel est affichée l'image.
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 418
    Par défaut
    tu pourras me donner un exemple stp!! je suis vraiement bloqué!!!
    et comment je peux vider un bufferedimage!! merci

  6. #6
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    On ne peut pas "vider" une BufferedImage, on ne peut que réécrire son contenu.

    Pour ça, tu peux utiliser la méthode createGraphics qui te retourne un objet de type Graphics2D, qui te permet de dessiner sur l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Graphics2D g = monImage.createGraphics();
     
    g.setColor(Color.RED);
    g.fillRect(0, 0, monImage.getWidth() / 2, monImage.getHeight() / 2);
    Tu peux aussi utiliser les méthodes setRGB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // on met le pixel en haut à gauche en rouge
    monImage.setRGB(0, 0, 0x00FF0000);
    // alpha = 0
    // rouge = FF (255)
    // vert = 0
    // bleu = 0
    // couleur : rouge
    Ou bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // data est un tableau contenant les valeurs de l'image en ARGB
    int[] data = new int[monImage.getWidth(), monImage.getHeight()];
    // on remplit data
    ...
    // on réécrit l'image entière
    monImage.setRGB(0, 0, monImage.getWidth(), monImage.getHeight(), data, 0, monImage.getWidth());
    Si tu veux travailler avec un encodage de couleurs différent, il faut utiliser le Raster de l'image (getRaster()).
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/05/2012, 15h27
  2. [Débutant] Comment on peut voir sur l'onglet toutes les procedures et fonctions
    Par xingjing910 dans le forum VB.NET
    Réponses: 3
    Dernier message: 04/04/2012, 11h49
  3. Comment faire une jointure sur toutes mes tables
    Par vevere dans le forum Requêtes
    Réponses: 1
    Dernier message: 23/03/2011, 15h09
  4. comment faire un document XML qui référence toutes les URL
    Par abdallah2007 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 01/06/2007, 11h14
  5. comment faire un onClick sur toute la page?
    Par amartin dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/03/2007, 12h34

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