السلام عليكــم ورحمـة الله وبركاتــه ،،
الكلاس java.awt.Robot تحتوي على الميثود createScreenCapture والتي تسمح بأخذ صورة من سكح المكتب.
هذه الميثود تنتظر object من صنف Rectangle يمثل المساحة التي يراد التقاطها، وبما أننا نريد التقاط سطح المكتب بأكمله فإننا نحتاج إلى Rectangle يمتد من 0 إلى عرض الشاشة أفقيا وعموديا من 0 إلى قيمة طول الشاشة
هذه الميثود تعيد object من صنف BufferedImage، وهذه الكلاس تمثل صورة في الذاكرة، من أجل كتابتها على القرص الصلب، سنستعمل ImageIO.write، هذه الميثود تنتظر ثلاث arguments، الأول هو الBufferedImage الذي يجب كتابته، الثاني هو String يمثل نوع الصورة "jpg, png ,gif ..." والثالث هو الملف الذي ستتم الكتابة فيه
import java.awt.Toolkit;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.AWTException;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.File;
import java.io.IOException;
public class CaptureScreen {
public static void main(String[] args) {
try {
Robot r = new Robot();
Dimension screenDimension = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle surfaceToCapture = new Rectangle(0, 0, (int)screenDimension.getWidth(), (int)screenDimension.getHeight());
BufferedImage capture = r.createScreenCapture(surfaceToCapture);
File imgFile = new File("screenCapture.png");
ImageIO.write(capture, "png", imgFile);
} catch (AWTException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
import java.awt.Robot;

