Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

java applet capture d'écran?? screenshot.java applet??

3 réponses
Avatar
google
Salut à tous,

Je cherche à savoir si je peux porter le simple programme suivant
dévelopé par Marco Schmidt en une java applet. Je suis absoluement
novice en la matière.

Mon but: je veux développer une applet qui prendrait une photo d'écran
de la fenêtre la plus avancée du browser du visiteur, pour ensuite
transferrer et écrire cette photo du côté serveur. La photo serait
alors renvoyée à l'utilisateur via email. Je veux que tout cela
s'effectue facilement pour le visiteur web.

Ma question: est-ce que vous savez si le passage de ce simple
programme de Marco Schmidt à une applet est faisable? Est-il possible
de faire écrire le BufferedImage image = robot.createScreenCapture()
sur le serveur? Dans ce cas, existerait-il des restrictions ou des
polices de sécurité java à mettre en place du côté de l'utilisateur?

Vous me rendriez service si vous pourriez répondre à ces simples
questions.

le lien du programme:
http://www.geocities.com/marcoschmidt.geo/java-save-screenshot.html


/*
* Screenshot.java (requires Java 1.4+)
*/

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;

public class Screenshot {
public static void main(String[] args) throws Exception {
// make sure we have exactly two arguments,
// a waiting period and a file name
if (args.length != 2) {
System.err.println("Usage: java Screenshot " +
"WAITSECONDS OUTFILE.png");
System.exit(1);
}
// check if file name is valid
String outFileName = args[1];
if (!outFileName.toLowerCase().endsWith(".png")) {
System.err.println("Error: output file name
must " +
"end with \".png\".");
System.exit(1);
}
// wait for a user-specified time
try {
long time = Long.parseLong(args[0]) * 1000L;
System.out.println("Waiting " + (time / 1000L)
+
" second(s)...");
Thread.sleep(time);
} catch(NumberFormatException nfe) {
System.err.println(args[0] + " does not seem
to be a " +
"valid number of seconds.");
System.exit(1);
}
// determine current screen size
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
// create screen shot
Robot robot = new Robot();
BufferedImage image =
robot.createScreenCapture(screenRect);
// save captured image to PNG file
ImageIO.write(image, "png", new File(outFileName));
// give feedback
System.out.println("Saved screen shot (" +
image.getWidth() +
" x " + image.getHeight() + " pixels) to file
\"" +
outFileName + "\".");
// use System.exit if the program hangs after writing
the file;
// that's an old bug which got fixed only recently
// System.exit(0);
}
}


merci,

antoine

3 réponses

Avatar
Vincent Cantin
Salut à tous,

Je cherche à savoir si je peux porter le simple programme suivant
dévelopé par Marco Schmidt en une java applet. Je suis absoluement
novice en la matière.

Mon but: je veux développer une applet qui prendrait une photo d'écran
de la fenêtre la plus avancée du browser du visiteur, pour ensuite
transferrer et écrire cette photo du côté serveur. La photo serait
alors renvoyée à l'utilisateur via email. Je veux que tout cela
s'effectue facilement pour le visiteur web.

Ma question: est-ce que vous savez si le passage de ce simple
programme de Marco Schmidt à une applet est faisable? Est-il possible
de faire écrire le BufferedImage image = robot.createScreenCapture()
sur le serveur? Dans ce cas, existerait-il des restrictions ou des
polices de sécurité java à mettre en place du côté de l'utilisateur?

Vous me rendriez service si vous pourriez répondre à ces simples
questions.

le lien du programme:
http://www.geocities.com/marcoschmidt.geo/java-save-screenshot.html


/*
* Screenshot.java (requires Java 1.4+)
*/

import java.awt.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;

public class Screenshot {
public static void main(String[] args) throws Exception {
// make sure we have exactly two arguments,
// a waiting period and a file name
if (args.length != 2) {
System.err.println("Usage: java Screenshot " +
"WAITSECONDS OUTFILE.png");
System.exit(1);
}
// check if file name is valid
String outFileName = args[1];
if (!outFileName.toLowerCase().endsWith(".png")) {
System.err.println("Error: output file name
must " +
"end with ".png".");
System.exit(1);
}
// wait for a user-specified time
try {
long time = Long.parseLong(args[0]) * 1000L;
System.out.println("Waiting " + (time / 1000L)
+
" second(s)...");
Thread.sleep(time);
} catch(NumberFormatException nfe) {
System.err.println(args[0] + " does not seem
to be a " +
"valid number of seconds.");
System.exit(1);
}
// determine current screen size
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension screenSize = toolkit.getScreenSize();
Rectangle screenRect = new Rectangle(screenSize);
// create screen shot
Robot robot = new Robot();
BufferedImage image > robot.createScreenCapture(screenRect);
// save captured image to PNG file
ImageIO.write(image, "png", new File(outFileName));
// give feedback
System.out.println("Saved screen shot (" +
image.getWidth() +
" x " + image.getHeight() + " pixels) to file
"" +
outFileName + "".");
// use System.exit if the program hangs after writing
the file;
// that's an old bug which got fixed only recently
// System.exit(0);
}
}



From the API documentation in the class java.awt.Robot :
createScreenCapture
public BufferedImage createScreenCapture(Rectangle screenRect)Creates an
image containing pixels read from the screen.


Parameters:
screenRect - Rect to capture in screen coordinates
Returns:
The captured image
Throws:
IllegalArgumentException - if screenRect width and height are not
greater than zero
SecurityException - if readDisplayPixels permission is not granted
See Also:
SecurityManager.checkPermission(java.security.Permission), AWTPermission



....... The method throws a security exception ... probably it means that an
applet cannot call it.

Avatar
JScoobyCed
Vincent Cantin wrote:

Salut à tous,

Je cherche à savoir si je peux porter le simple programme suivant
dévelopé par Marco Schmidt en une java applet. Je suis absoluement
novice en la matière.

Mon but: je veux développer une applet qui prendrait une photo d'écran
de la fenêtre la plus avancée du browser du visiteur, pour ensuite
transferrer et écrire cette photo du côté serveur. La photo serait
alors renvoyée à l'utilisateur via email. Je veux que tout cela
s'effectue facilement pour le visiteur web.

Ma question: est-ce que vous savez si le passage de ce simple
programme de Marco Schmidt à une applet est faisable? Est-il possible
de faire écrire le BufferedImage image = robot.createScreenCapture()
sur le serveur? Dans ce cas, existerait-il des restrictions ou des
polices de sécurité java à mettre en place du côté de l'utilisateur?

...



From the API documentation in the class java.awt.Robot :
createScreenCapture
...
SecurityException - if readDisplayPixels permission is not granted
See Also:
SecurityManager.checkPermission(java.security.Permission), AWTPermission



....... The method throws a security exception ... probably it means that an
applet cannot call it.




Oui, mais en signant l'Applet ca peut etre contourne. Il faut alors que
le browser client ait le JRE de Sun, ou signer l'applet avec le JavaSDK
qui correspond au browser.

--
JScoobyCed
What about a JScooby snack Shaggy ? ... Shaggy ?!


Avatar
google
merci, l'information dont j'avais besoin


From the API documentation in the class java.awt.Robot :
createScreenCapture
public BufferedImage createScreenCapture(Rectangle screenRect)Creates an
image containing pixels read from the screen.


Parameters:
screenRect - Rect to capture in screen coordinates
Returns:
The captured image
Throws:
IllegalArgumentException - if screenRect width and height are not
greater than zero
SecurityException - if readDisplayPixels permission is not granted
See Also:
SecurityManager.checkPermission(java.security.Permission), AWTPermission



....... The method throws a security exception ... probably it means that an
applet cannot call it.