منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا

اذهب الى الأسفل

كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا Empty كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا

مُساهمة من طرف أحمد مناع الأربعاء يناير 15, 2014 1:24 pm

بسم الله الرحمن الرحيم


أهلا وسهلا بكم إخوانى .....فغالبا تكون مضطر أن تأخذ لقطات من سطح مكتب المستخدم وتطبيقات الرسومات (مثل فوتوشوب)، وحتى عند كتابة مقالات لمنتدى مصر التقنى التي تتطلب صور فى الشرح ...لذلك فإن هذا المقال سيكون عن كيفية أخذ لقطة من سطح مكتب المستخدم أو أحد النوافذ النشطة من خلال تطبيقات الجافا و الدرس سهل و بسيط للغاية إن شاء الله تعالى :

1_ أخذ لقطة أو صورة بتحديد جزء من الشاشة


  • لكى تأخذ لقطة من سطح مكتب المستخدم بلغة جافا عامة يتم ذلك من خلال إنشاء مثيل جديد من الفئة java.awt.Robot، واستخدام الأسلوب createScreenCapture وذلك على النحو التالى :


الكود:
Robot robot = new Robot();
   Rectangle captureSize = new Rectangle(0, 0, 300, 300);

_ويرجى ملاحظة أن الاسلوب Rectangle يتطلب 4 معطيات هما x,y والتى عبرت عنهم فى الكود أعلاه بالقيمة صفر و يستخدمان فى تحديد المكان الذى اريد ان أخذ منه لقطة من على الشاشة ....وبما اننى عبرت عنهم بالقيمة صفر فمعنى ذلك اننى ساقوم باخذ لقطة من اعلى يسار الشاشة ....

_ و الاخرين هما width,height والتى عبرت عنهم فى الكود أعلاه بالقيمة 300 و هما يحددان حجم الصورة ...ومعنى ذلك اننى سأقوم باخذ صورة بحجم 300*300 بيكسل


  • بعد ذلك سنقوم باستخدام الكائن BufferedImage لتخزين اللقطة التى تم أخذها به على النحو التالى :


الكود:
BufferedImage bufferedImage = robot.createScreenCapture(captureSize);


  • بعد ذلك سنقوم باستخدام الكائن File لانشاء كائن صورة من نوع png وذلك على النحو التالى :


الكود:
File screenshotFile = new File("./creenshot-"+System.currentTimeMillis()+".png");


  • بعد ذلك سنقوم بأستخدام الكائن ImageIO لكتابة كائن الصورة على القرص الصلب و حفظة على النحو التالى :


الكود:
ImageIO.write(bufferedImage, "png",screenshotFile);

و الكود الكامل لاخذ جزء من سطح مكتب المستخدم على النحو التالى :

الكود:

package b;

import java.awt.AWTException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;


public class B {

  
    public static void main(String[] args) throws IOException {
      
      try {
        Robot robot = new Robot();
   Rectangle captureSize = new Rectangle(0, 0, 300, 300);
        BufferedImage bufferedImage = robot.createScreenCapture(captureSize);
        
          File screenshotFile = new File("./creenshot-"+System.currentTimeMillis()+".png");
        ImageIO.write(bufferedImage, "png",screenshotFile);
    }
    catch(AWTException e) {
       System.err.println("Something fishy is going on...");
    }
    }
}

2_ أخذ لقطة كاملة لشاشة المستخدم

يمكنك تصوير سطح المكتب كاملا للمستخدم من خلال الفئة java.awt.Toolkit و استخدام الاسلوب getDefaultToolkit وذلك على النحو التالى :

الكود:
Robot robot = new Robot();
   Rectangle captureSize = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
        BufferedImage bufferedImage = robot.createScreenCapture(captureSize);

و الكود الكامل على النحو التالى :

الكود:

package b;

import java.awt.AWTException;
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 B {

  
    public static void main(String[] args) throws IOException {
      
      try {
        Robot robot = new Robot();
   Rectangle captureSize = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
        BufferedImage bufferedImage = robot.createScreenCapture(captureSize);
        
          File screenshotFile = new File("./creenshot-"+System.currentTimeMillis()+".png");
        ImageIO.write(bufferedImage, "png",screenshotFile);
    }
    catch(AWTException e) {
       System.err.println("Something fishy is going on...");
    }
    }
}

3_ تصوير النوافذة النشطة فقط

يمكنك تصوير النوافذ النشطة فقط من خلال الفئة GraphicsDevice و الفئة MouseInfo وذلك على النحو التالى :

الكود:
 Robot robot = new Robot();
   GraphicsDevice currentDevice = MouseInfo.getPointerInfo().getDevice();
   BufferedImage bufferedImage = robot.createScreenCapture(currentDevice
               .getDefaultConfiguration().getBounds());

و الكود الكامل لتصوير النوافذ النشطة فقط على النحو التالى :

الكود:

package b;

import java.awt.AWTException;
import java.awt.GraphicsDevice;
import java.awt.MouseInfo;
import java.awt.Robot;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;


public class B {

  
    public static void main(String[] args) throws IOException {
      
      try {
        Robot robot = new Robot();
   GraphicsDevice currentDevice = MouseInfo.getPointerInfo().getDevice();
   BufferedImage bufferedImage = robot.createScreenCapture(currentDevice
               .getDefaultConfiguration().getBounds());
        
          File screenshotFile = new File("./creenshot-"+System.currentTimeMillis()+".png");
        ImageIO.write(bufferedImage, "png",screenshotFile);
    }
    catch(AWTException e) {
       System.err.println("Something fishy is going on...");
    }
    }
}


شكرا لكم و اللى اللقاء فى درس جديد إن شاء الله تعالى

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا Empty رد: كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا

مُساهمة من طرف زهراء السبت أبريل 05, 2014 8:43 am

جزاكم الله خيرا اخى و استاذى
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا Empty رد: كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا

مُساهمة من طرف أحمد مناع الجمعة مارس 20, 2020 7:18 am

للرفع كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا 1f609

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى