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

Java Discussion :

Boucle pour prise d'image toutes les 0,5 secs


Sujet :

Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut Boucle pour prise d'image toutes les 0,5 secs
    Bonjour
    J'expose ma demande
    Dans mon programme j'ai besoin d'une boucle java afin de prendre une image toutes les 1/2 secondes.
    Infos autres : le programme récupère une image à partir du flux d'une webcam grâce Java Media Player. Si quelqu'un a une solution a m'apporter.
    La boucle peut être de n'importe quelle forme juste la plus efficace.
    Merci d'avance amis développeurs
    Voila la partie du code qui traite l'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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    // récupère un contrôle sur le flux
    FrameGrabbingControl fgc = (FrameGrabbingControl) player.getControl("javax.media.control.FrameGrabbingControl");
    Buffer buf;
    // récupère un Buffer contenant l'image demandée
     
    buf = fgc.grabFrame();
     
    // convertion du buffer en image (via BufferToImage)
    BufferToImage btoi;
    btoi = new BufferToImage((VideoFormat) buf.getFormat());
    Image img;
    // création de l'image
    img = btoi.createImage(buf);
     
    // save image
    saveBMP(img, "testWritter.jpeg");
    } catch (NoDataSourceException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    } catch (NoProcessorException e) {
    e.printStackTrace();
    } catch (NoPlayerException e) {
    e.printStackTrace();
    }
    }
     
    /**
    * Crée un fichier jpeg  sur le disque à partir d'un objet Image
    * @param img
    * @param s
    */
    public static void saveJPEG(Image img, String s) {
    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = bi.createGraphics();
    g2.drawImage(img, null, null);
     
    FileOutputStream out = null;
    try {
    out = new FileOutputStream(s);
    } catch (java.io.FileNotFoundException io) {
    // création du fichier automatiquement si inexistant
    }
     
    // encodeur JPEG
    //JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
    // paramètres d'encodage
    //JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(bi);
    //param.setQuality(0.5f, false);
    // assignation des paramètres d'encodage
    //encoder.setJPEGEncodeParam(param);
     
    try {
    // encodage de l'image
    encoder.encode(bi);
    out.close();
    } catch (java.io.IOException io) {
    System.out.println("IOException");
    }
    }
     
    }

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Ce qu'il te faut pour ce genre de traitement, ce n'est pas une boucle, mais une tâche qui s'exécuter à intervalles réguliers. Le langage dispose déjà de classes dédiées ce genre de besoin.

    Je te suggère d'aller regarder du côté de la javadoc de "TimerTask", "Timer", et de te former (au moins un minimum) sur les Thread si tu ne sais pas déjà comment ils fonctionnent.

    Avec ça, tu devrais résoudre ton problème beaucoup plus facilement.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 12
    Points : 7
    Points
    7
    Par défaut
    Ha oui effectivement je n'y avais pas du tout pensé merci pour ton indication.
    Cela va me faire gagner beaucoup de temps

Discussions similaires

  1. Réponses: 21
    Dernier message: 23/05/2007, 16h16
  2. [GD] Problème de boucle pour redimensionner plusieurs images ...
    Par jimmyneutron dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 10/04/2007, 17h46
  3. modifier une image toutes les X secondes
    Par didine44 dans le forum GTK+ avec C & C++
    Réponses: 4
    Dernier message: 01/02/2007, 17h09
  4. logiciel pour compresser et décompresser tout les formats
    Par vampyer972 dans le forum Autres Logiciels
    Réponses: 12
    Dernier message: 28/02/2006, 19h29
  5. [ImageMagick] Boucle pour créer plusieurs images
    Par zimotep dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 10/01/2006, 21h44

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