كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1 • شاطر
كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا
بسم الله الرحمن الرحيم
أهلا وسهلا بكم إخوانى .....فغالبا تكون مضطر أن تأخذ لقطات من سطح مكتب المستخدم وتطبيقات الرسومات (مثل فوتوشوب)، وحتى عند كتابة مقالات لمنتدى مصر التقنى التي تتطلب صور فى الشرح ...لذلك فإن هذا المقال سيكون عن كيفية أخذ لقطة من سطح مكتب المستخدم أو أحد النوافذ النشطة من خلال تطبيقات الجافا و الدرس سهل و بسيط للغاية إن شاء الله تعالى :
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...");
}
}
}
شكرا لكم و اللى اللقاء فى درس جديد إن شاء الله تعالى
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
رد: كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا
جزاكم الله خيرا اخى و استاذى
زهراء- ........
- تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة :
الجنس :
رد: كيفية تصوير سطح المكتب و النوافذ النشطة screenshot وحفظها بصيغة png فى تطبيقات الجافا
للرفع
ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
| |
منتدى مصر التقني :: قسم لغات البرمجة Programming languages :: لغة الجافا Java :: واجهة المستخدم الرسومية Java Swing
صفحة 1 من اصل 1
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى
الأحد مارس 17, 2024 1:52 pm من طرف رانيا حماد
» افضل شركة نقل عفش بالرياض نقل باكستاني 40% خصم | موقع الانوار
الأحد مارس 17, 2024 1:25 pm من طرف رانيا حماد
» افضل معلم جبس بالرياض تركيب جبس بورد بالرياض 20% خصم اتصل الآن
الأحد مارس 17, 2024 1:09 pm من طرف رانيا حماد
» شراء اثاث مستعمل بالكويت بخصم 30%
الأحد مارس 17, 2024 12:54 pm من طرف رانيا حماد
» افضل فني كهربائي منازل بالرياض جودة 100% | اتصل الآن
الأحد مارس 17, 2024 12:36 pm من طرف رانيا حماد
» أفضل فني سباك بالرياض ممتاز بالرياض | اتصل الآن
الأحد مارس 17, 2024 12:25 pm من طرف رانيا حماد
» افضل شركة تنظيف اثاث بالرياض تنظيف كنب واجهات حجر بخصم 40%
الأحد مارس 17, 2024 11:52 am من طرف رانيا حماد
» افضل شركة تنظيف فلل بالرياض | الانوار
الأحد مارس 17, 2024 11:22 am من طرف رانيا حماد
» افضل شركة تنظيف واجهات زجاج بالرياض 30% خصم
الأحد مارس 17, 2024 10:38 am من طرف رانيا حماد
» افضل شركة نقل عفش بالكويت بخصم 20%
الخميس مارس 14, 2024 1:36 pm من طرف رانيا حماد