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

Multimédia Java Discussion :

java média framwork


Sujet :

Multimédia Java

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Par défaut java média framwork
    salut,
    j'ai écrit une classe avec java media framwork qui me permet de creer une serie de photos a partir d'une webcam
    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
    public class FrameGrabber {
     
    public static void main(String[] args) throws Exception {
     
    VideoFormat vidformat = new VideoFormat(VideoFormat.YUV);
     
    Vector devices = CaptureDeviceManager.getDeviceList(vidformat);
     
    CaptureDeviceInfo di = (CaptureDeviceInfo) devices.firstElement();
     
    Processor p = Manager.createProcessor(di.getLocator());
     
    p.configure();
     
    while (p.getState() != Processor.Configured) Thread.sleep(10);
     
    p.realize();
     
    while (p.getState() != Processor.Realized)Thread.sleep(10);
     
    PushBufferDataSource source = (PushBufferDataSource) p.getDataOutput();
     
    PushBufferStream[] pstreams = source.getStreams();
     
    Format streamFormat = pstreams[0].getFormat();
     
    BufferToImage bti = new BufferToImage((VideoFormat)streamFormat);
     
    p.start();
     
    System.out.println("Processor started.");
     
    int delay = Integer.parseInt(args[2]);
     
    int imgCount = Integer.parseInt(args[1]);
     
    for (int i = 0; i < imgCount; ++i) {
     
    Buffer b = new Buffer();
     
    pstreams[0].read(b);
     
    Image img = bti.createImage(b);
     
    ImageIO.write((RenderedImage) img, "jpeg", new File(args[0] + i + ".jpg"));
     
    System.out.println("image "+ i +" saved.");
     
    Thread.sleep(delay);
     
    }
     
    System.out.println("done.");
     
    p.close();
     
    System.exit(0);
     
    }
    }
    les photos sont enregistrées sur mon disque dur.
    Mon problème est le suivant:
    - comment créer une liste ou un vecteur contenant les références de chaque photo
    - comment exporter une photo du disque dur á un autre endroit

    merci

    gilles

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 46
    Par défaut
    Je ne suis pas bien sur de comprendre bien la question, mais si j'ai bien compris tu souhaiterais pouvoir gerer le stockage/l'export de tes images. En gros tu veux pouvoir les conservées sur la mémoite vive sans les stockés sur le disque dur avant de les exportées?

    J'ai fait une application client serveur qui utilise la JMF et qui exporte des fichiers. Toi tu passe par la classe File qui ne permet que d'écrire et de lire des fichiers sur le disque dur. Si tu veux les garder entièrement en mémoire il te faut passer par des FilesInput/OutputStream. Mais a mon gout, le plus simple c'est de passer par un RandomAccessFile (qui en plus est sérialisable) et qui permettera de facilement déplacer/envoyer le fichier.

    Exemple de code permettant la lecture avec un RandomAccessFile:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     RandomAccessFile raFile;
     raFile = new RandomAccessFile("C:\\toto.jpg", "r");
     byte[] buf = new byte[(int)raFile.length()];
     raFile.read(buf);
    Il est possible ensuite de faire un vector de RandomAccessFile , le problème c'est que la mémoire est vite saturée en java.

Discussions similaires

  1. Java et les média Vidéo
    Par badroum dans le forum Multimédia
    Réponses: 0
    Dernier message: 19/05/2014, 22h51
  2. Java Media Framwork et GUI
    Par gilles81 dans le forum Multimédia
    Réponses: 1
    Dernier message: 03/04/2009, 19h38

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