Screenshot-Was dauert da

NomadSoul

Erfahrenes Mitglied
Also ich hab ein Problem ich versuche gerdade mit Java ein Kleines Screencapture Programm zu realisieren, mein Problem das SPeicher oder das aufnehmen der Bildre dauert ewig. Er macht mirt in Ca 10 Sekunden 30 Bilder jetzt frage ich mich wo liegt die Bremse in dem Speichern oder im Aufnehmen?
Code:
 public static void main(String[] args) {
        try {
                           
                              
        	                        Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
        	                     Robot robot = new Robot();
        	                     for (int i=0; i<30;i++){
                                 BufferedImage image = robot.createScreenCapture(screenRect);
                                ImageIO.write(image, "jpg", new File("screnneee"+i+".jpg"));
        	                     }
        	                       	
        	                    } catch (Exception e) {
        	                        System.out.println(e);
                         }

	}
 
Hallo!

Ich denke sowohl das Captureing als auch das Schreiben auf Platte dauert lange...
Versuchs doch mal hiermit:
Code:
   package de.tutorials;
   
   import java.awt.Rectangle;
   import java.awt.Robot;
   import java.awt.Toolkit;
   import java.awt.image.BufferedImage;
   import java.io.File;
   import java.io.IOException;
   
   import javax.imageio.ImageIO;
   
   public class FastScreenShoot {
   
   	/**
   	 * @param args
   	 */
   	public static void main(String[] args) throws Exception {
   		long time = -System.currentTimeMillis();
   		Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit()
   				.getScreenSize());
   		Robot robot = new Robot();
   		for (int i = 0; i < 26; i++) {
 			final BufferedImage image = robot.createScreenCapture(screenRect);
   			final int j = i;
   			new Thread(){
   				public void run() {
   					try {
 		 		 ImageIO.write(image, "jpg", new File("c:/screens/"+ ((char)('a'+j)) + ".jpg"));
 					} catch (IOException e) {
   		    		    e.printStackTrace();
  				 } 	
   				};
   			}.start();
   		}
   
   		System.out.println((time + System.currentTimeMillis()) +"ms");
   		
   	}
   }
---> Musst du wahrscheunlich mit den JVM Optionen -Xms256m -Xmx256m starten.
(Bei mir zumindest...)

Für 26 Bilder à 1240x1024@32Bit Color brauche ich damit im Mittel 4 Sekunden...
(P4 3,2 GHz)

Gruß tom
 
Dank dir bekomme deinen Source grad nur ned zum Laufen ich versuchs heute abend nochmal. Hab mir überlegt ich könnte es eigendlich auch direkt mit dem JMF machen.
 
Zurück