Capture d'ecran video en Java
Résolu/Fermé
smiley5555
Messages postés
80
Date d'inscription
mercredi 18 avril 2012
Statut
Membre
Dernière intervention
11 octobre 2013
-
9 juin 2013 à 09:56
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 9 avril 2014 à 21:48
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 9 avril 2014 à 21:48
A voir également:
- Capture d'ecran video en Java
- Capture d'écran samsung - Guide
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Télécharger outil capture d'écran ciseaux - Télécharger - Capture d'écran
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
9 juin 2013 à 11:29
9 juin 2013 à 11:29
Tu peux faire des impressions écrans (très) régulièrement, pour te créer des images les unes à la suite des autres, que tu assembleras ensuite avec un logiciel de montage vidéo. Pour ça tu as la classe Robot.
Remarque : l'enregistrement des images peut être long et décaler la capture d'écran, il pourrait donc être intéressant de ne les enregistrer dans les fichiers qu'une fois toutes les captures faites, ce qui signifie stocker toutes les images en mémoire, c'est donc intéressant pour un nombre réduit d'images, dans ton cas ça devrait suffire.
Voici une première idée :
Remarque : l'enregistrement des images peut être long et décaler la capture d'écran, il pourrait donc être intéressant de ne les enregistrer dans les fichiers qu'une fois toutes les captures faites, ce qui signifie stocker toutes les images en mémoire, c'est donc intéressant pour un nombre réduit d'images, dans ton cas ça devrait suffire.
Voici une première idée :
import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; public class Test { public static void main(String[] args) throws Exception { ///////////////////////////// ////// CONFIGURATION ////// ///////////////////////////// // Zone de la prise de vue Rectangle screenRect = new Rectangle(100,100,500,500); // Temps en secondes de la vidéo int duree = 5; // Nombres d'images par seconde int frequence = 10; // Début des noms de fichiers (ils seront complétés par _{indice}.png) File prefix = new File("C:/test/image"); ///////////////////////////// Robot robot = new Robot(); int max = duree*frequence; // nombre d'images au total long delai = 1000/frequence; // temps d'attentes entre deux images (en ms) // tableau d'enregistrement des images BufferedImage[] images = new BufferedImage[max]; System.out.println("Début des captures d'images."); for (int i=0; i<max; i++) { // capture de l'image images[i] = robot.createScreenCapture(screenRect); // attente entre deux images à capturer Thread.sleep(delai); } System.out.println("Fin des captures d'images."); // nom générique des images String format = String.format("%s_%%0%dd.png", prefix.getAbsolutePath(),String.valueOf(max).length()); System.out.println("Début d'enregistrement des images --> "+format); for (int i=0; i<max; i++) { // nom spécifique de l'image String file = String.format(format, i); // enregistrement de l'image ImageIO.write(images[i],"png",new File(file)); } System.out.println("Fin d'enregistrement des images."); } }
smiley5555
Messages postés
80
Date d'inscription
mercredi 18 avril 2012
Statut
Membre
Dernière intervention
11 octobre 2013
22
9 juin 2013 à 14:50
9 juin 2013 à 14:50
merci de ton aide.
9 avril 2014 à 08:43
Ca veut dire que si duree = 60mins(1h) et que fréquence max = 100fps, je marque donc:
int max = 3600*100;
?
9 avril 2014 à 21:48