Creer une BufferedImage sur la fenêtre active
Fermé
6FoursPlaya
-
14 févr. 2014 à 22:43
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 févr. 2014 à 12:50
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 15 févr. 2014 à 12:50
A voir également:
- Creer une BufferedImage sur la fenêtre active
- Créer un compte instagram sur google - Guide
- Créer un compte google - Guide
- Créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Créer une adresse hotmail - Guide
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
15 févr. 2014 à 11:25
15 févr. 2014 à 11:25
L'idée du Robot est pas mal, il faut juste lui indiquer de ne prendre que la portion d'écran qui correspond à la fenêtre active. Exemple :
import java.awt.Desktop; import java.awt.Dimension; import java.awt.Point; import java.awt.Rectangle; import java.awt.Robot; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; public class Test { public static void main(String[] args) { final JFrame frame = new JFrame(); JButton button = new JButton("Capture"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent ae) { try { Robot robot = new Robot(); Dimension size = frame.getSize(); Point pos = frame.getLocationOnScreen(); BufferedImage img = robot.createScreenCapture(new Rectangle(pos.x, pos.y, size.width, size.height)); File tmp = File.createTempFile("awtScreenCapture_", ".png"); ImageIO.write(img, "png", tmp); Desktop.getDesktop().open(tmp); } catch (Exception e) { JOptionPane.showMessageDialog(frame, e, e.getClass().getCanonicalName(), JOptionPane.ERROR_MESSAGE); } } }); frame.setSize(200, 200); frame.add(button); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
15 févr. 2014 à 12:37
merci de ta réponse mais cela ne correspond pas exactement à mon besoin...
Je ne veux pas créer de JFrame et faire une capture sur cette dernière mais par exemple faire une copie d'écran automatique (toutes les 3 sec) sur firefox ou sur un explorateur windows ou autre (la fenêtre qui est active sur mon écran de PC)
Merci par avance
Cdlt,
Greg
Modifié par KX le 15/02/2014 à 13:22
Sous Windows tu peux faire comme ça :
Du coup tu adaptes le code de tout à l'heure comme ceci :
Il faudra bien sûr rajouter les deux jar jna et jna-platform dans ton classpath pour que ça fonctionne.