Creer une BufferedImage sur la fenêtre active
6FoursPlaya
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
tout est plus ou moins dit... Je cherche à créer avec un robot (ou autre solution) une bufferedImage sur ma fenêtre active de mon écran (et non pas de tout l'écran)...
Merci par avance de votre aide
Cordialement,
Greg
tout est plus ou moins dit... Je cherche à créer avec un robot (ou autre solution) une bufferedImage sur ma fenêtre active de mon écran (et non pas de tout l'écran)...
Merci par avance de votre aide
Cordialement,
Greg
A voir également:
- Creer une BufferedImage sur la fenêtre active
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un compte instagram sur google - Guide
- Créer une adresse hotmail - Guide
- Creer une story sur facebook - Guide
1 réponse
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); } }
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
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.