الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف تأخد صورة Screenshot لسطح المكتب

بدأه herch في 15 سبتمبر 2009 · 6 رد · 2,955 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

الكلاس 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;

1
#3

وعليكــم السـلام ورحمة الله وبركاتـه..

بارك الله فيك أخي عصام ،،

كنت قد استخدمت هذا الكلاس فيما سبق في برنامج Remote Desktop Controlling

بالتوفيق ،

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#4

شكرا للبروفيسورات على الإهتمام

أخي وجدي، ممنوع عمل إعلانات لمواضيعك في موضوعي، هذه منافسة غير شريفة :haha: :haha:

والحمد لله أنك لم تتكلم كثيرا عن كيفية أخد الscreenshot، ولا عن كيفية تخزينها في القرص الصلب وإلا كنت طالبتني بحقوق الملكية الفكرية :haha: ، وأنا جيوبي الآن كلها فارغة مثل معدتي

#5

شكرا لك يا حج عصام على الموضوع الممتاز داه , ممكن تسمحلى اسئلك سؤال اعتقد انه سازج بعض الشئ

و هو : هل هذه ال method الرائعة تستخدم ال ClipBoard ام هى تعتمد فقط على ال VM ؟؟؟؟

اذا كانت تعتمد فقط على ال VM و لا تشغل ال ClipBoard فسوف تكون ميثود اكثر من رائعة على الاطلاق و هذا ما اتمناه

اعلم ان هذا السؤال قد يكون مضحك و ساذج جدا , لكن انا اسف استحملنى :blink:

منتظر ردك ضرورى .

تم تعديل هذه المشاركة بواسطة sameh mahmoud في 17 سبتمبر 2009 في 07:04

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

#6

في الحقيقة لم أفهم سؤالك جيدا

هنا لم نستعمل الClipBoard بل كتبنا مباشرة إلى الملف

وبالنسبة للBufferedImage فهي تكون أولا في الذاكرة ثم نخزنها في ملف، لكن ليس في الClipboard

هل تريد التعامل كيفية عمل الclipboard في الجافا؟؟

#7
اقتباس
هنا لم نستعمل الClipBoard بل كتبنا مباشرة إلى الملف

هذا ما اردته

شكرا

سبـــــحــــان الله و بحمده سبحان الله العظيم

403100468.gif

مواضيع مشابهة