Loading...
Logo
Processing Forum

get screencapture

Answered
  • Need more info
  • Answered
  • Working on it
in Programming Questions  •  3 years ago  
Hi, I'm trying to get processing to make a screencapture of my Desktop. I found this code below on an old forum page:

Copy code
  1. import java.awt.AWTException;
    import java.awt.Robot;
    import java.awt.Rectangle;
    import java.awt.image.BufferedImage;

    PImage screenShot;

    static public void main(String args[]) {
     PApplet.main(new String[] {
       "--present", "shooter"  }
     );
    }

    void setup() {
     size(screen.width, screen.height);
     screenShot = getScreen();
    }

    void draw () {
     image(screenShot,0,0, width, height);
    }

    PImage getScreen() {
     GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
     GraphicsDevice[] gs = ge.getScreenDevices();
     DisplayMode mode = gs[0].getDisplayMode();
     Rectangle bounds = new Rectangle(0, 0, mode.getWidth(), mode.getHeight());
     BufferedImage desktop = new BufferedImage(mode.getWidth(), mode.getHeight(), BufferedImage.TYPE_INT_RGB);

     try {
       desktop = new Robot(gs[0]).createScreenCapture(bounds);
     }
     catch(AWTException e) {
       System.err.println("Screen capture failed.");
     }

     return (new PImage(desktop));
    }
But i get the following error: cannot find a class or type named "Graphicsenvironment"

I can't find out what to do!

Maybe someone can help me with either the error, or maybe there's another way to get a desktop screenshot?

Replies(2)

Re: get screencapture

3 years ago
Copy code
  1. import java.awt.image.BufferedImage;
    import java.awt.*;

    PImage screenShot;



    void setup() {
      size(screen.width, screen.height);
      screenShot = getScreen();
    }

    void draw () {
      image(screenShot,0,0, width, height);
    }

    PImage getScreen() {
      GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
      GraphicsDevice[] gs = ge.getScreenDevices();
      DisplayMode mode = gs[0].getDisplayMode();
      Rectangle bounds = new Rectangle(0, 0, mode.getWidth(), mode.getHeight());
      BufferedImage desktop = new BufferedImage(mode.getWidth(), mode.getHeight(), BufferedImage.TYPE_INT_RGB);

      try {
        desktop = new Robot(gs[0]).createScreenCapture(bounds);
      }
      catch(AWTException e) {
        System.err.println("Screen capture failed.");
      }

      return (new PImage(desktop));
    }