Accélération matérielle du dessin bitmap en java
Je veux pouvoir dessiner des bitmaps consécutifs (de type BufferedImage.TYPE_INT_RGB) d'une vidéo aussi rapidement que possible en java. Je veux connaître la meilleure méthode pour le faire. Quelqu'un a-t-il un conseil par où je devrais commencer? D'après ce que j'ai lu, 2 options sont: 1) Utilisez les routines GDI/ GDI + dans une dll JNI fonctionnant avec JAWT (Im sous Windows) 2) Utilisez Java3D et appliquez des Textures sur le visage d'une boîte et faites-la pivoter vers la caméra
Im intéressant dans tous les conseils sur ces sujets ainsi que d'autres. Je j'ai fait une quantité décente de programmation GDI/GDI + en VB lorsque j'ai créé un contrôle ActiveX, donc l'utilisation de GDI devrait être indolore, mais je devine que Java3D utilisera davantage le GPU (je pourrais me tromper) et donnera de meilleures performances. Qu'en penses-tu? GDI et JAWT avec mon expérience précédente, ou démarrer et nouveau voyage API avec Java3D. Merci à l'avance. :)
1 answers
Pour obtenir une animation fluide (si c'est ce que vous voulez obtenir), vous devez utiliser la double mise en mémoire tampon. Pour ce faire, vous devrez créer un nouveau java.awt.Image (ou une sous-classe comme BufferedImage, ou si vous voulez un traitement accéléré OpenGL, VolatileImage) pour chaque image que vous souhaitez afficher. Si vous ne l'avez pas déjà fait, appelez Image.getGraphics() pour obtenir un java.awt.Objet graphique (peut également être utile d'ajouter votre contenu à l'Image). À la fin, lorsque l'image cachée est terminée, appelez Graphique.draw() pour remplacer l'affichage actuel en douceur.
VolatileImage est accéléré par OpenGL et beaucoup plus rapide. Lorsque VolatileImage.getGraphics () est appelé, il renvoie en fait un Graphics2D, qui fait également partie du pipeline graphique accéléré.
Il fonctionne sur Windows, Linux et Solaris, mais vous devez avoir des pilotes OpenGL installés pour votre carte graphique.
Quelques références supplémentaires:
Graphique accéléré pipeline:
Http://download.oracle.com/javase/1.5.0/docs/guide/2d/new_features.html
Http://www.javalobby.org/forums/thread.jspa?threadID=16840&tstart=0
Double mise en mémoire tampon:
Http://www.java2s.com/Code/Java/2D-Graphics-GUI/Smoothmoveusingdoublebuffer.htm
Http://www.heatonresearch.com/articles/23/page2.html
Http://www.javacooperation.gmxhome.de/BildschirmflackernEng.html