تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
نسخ صورة النافذه المفتوحه Screen capture
#1
كاتب الموضوع : Mohamed Gamal El-Din

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


يتعرض الكثير منا لبعض المواقف الغريبه و النادره التي تحدث بوسطة الحاسب الالي , والكثير يحب ان يحتفظ بالصوره التي تدل علي هذا الموقف
عن طريق النقر علي زرار pintScreen ثم الذهاب الي قائمة ابدا <<(start)كل البرامج <<(all programs) الملاحق <(accessories) الرسام (Paint)
ثم الضغط علي لصق (paste) وهنا ستظهر لك الصوره التتي قد اخذتها للنافذه المقتوحه .
ثم تذهب الي قائمه ملف لحفظ هذه الصوره. يالها من عملية شاقه

اليس بإمكاننا ان نبرمج برنامج يسهل علينا كل هذه الخطوات في طغطة زر واحده ؟

اليكم الطريقه

هذه الوظيفه (function) قد تمت اضافتها في الفيجوال استديو 2005 وتسمي CopyFromScreen
تقم هذه الفانكشن بأخد صوره من النافذه المفتوحه حالياُ وتتركها في ال Clipboard حتي نقوم بلصقها في صوره لكي يتم حفظها.

الكود


كود :
Private Image Captured_image;
Private Graphics captured_graph;
private void button1_Click (object sender, EventArgs e)
{
this.hide ();
If (saveFileDialog1.ShowDialog () == DialogResult.OK))
{
this.hide ();
[align=left]Captured_image = new Bitmap (Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb
<br>
);
[/align]
captured_graph = Graphics.FromImage (Captured_image);
captured_graph.CopyFromScreen (Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
Captured_image.Save (saveFileDialog1.FileName+"."+"Jpeg");
this.show ();
}
}
[SIZE=4]شرح الكود[/SIZE]


كما نري الكود في غاية البساطه

;Private Image Captured_image
هذا كائن ( object) من نوع صوره لكي يتم حفظ الصوره داخله

;()this.hide
وهذا السطر لكي بقوم بإخفاء البرنامج حتي لا يظهر في الصوره

كود :
[align=left]Captured_image = new Bitmap (Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);[/align]

وهذا السطر لكي نقوم بتهيئة كائن الصوره بتحديد طول و عرض الصوره و نوع البيكسلز المطلوب
وهنا قد وضعنا الطول و العرض للشاشه كاملين و استخدمنا Format32bppArg للألوان.

كود :
[align=left]captured_graph = Graphics.FromImage (Captured_image); [/align]
في هذا السطر قد هيئنا كائن الجرفيكس لكي ياخذ البيانت عن طريق صوره وفي ال Parameters الصوره الي سنقوم بحفظها

كود :
captured_graph.CopyFromScreen (Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);

اما هذا السطر فيعتبر الخطوه الاساسيه فهو المسئول عن اهذ صوره من النافذه المفتوحه ووضعها في كائن الجرافيكس
ويأخذ الاحداثيات من الشاشه ك parameters وكذلك الحجم, ما عن zero , zero فهما يرمزان الي المكان المقصود للمحور X and Y

كود :
Captured_image.Save (saveFileDialog1.FileName+"."+"Jpeg");
هذا هو السطر الاخير الذي قوم بحفظ الصوره في المكان الذي تريده

انه برنامج بسيط جدا , ولكنه يوفر الكثير من الجهد Smile
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  البرنامج بعد وضعه في صورة exe لا يتعامل مع قاعدة البيانات محمد خلف زكي 0 93 04-08-16, 05:10 AM
آخر رد: محمد خلف زكي
  Get Screen Snapshot RaggiTech 0 516 17-10-12, 10:19 PM
آخر رد: RaggiTech
  كيفية عمل صورة - مدورة - Rouded PictureBox ! RaggiTech 0 735 17-10-12, 09:55 PM
آخر رد: RaggiTech
  تدوير صورة حول مركزها باستخدام gdi+ RaggiTech 0 630 17-10-12, 09:30 PM
آخر رد: RaggiTech
  تعلم كيف تفتح صورة من رابط داخل ال Picture box RaggiTech 0 471 17-10-12, 08:21 PM
آخر رد: RaggiTech
  كيفية ادارة صورة 360 درجة RaggiTech 0 394 17-10-12, 07:24 PM
آخر رد: RaggiTech
  كيفية رسم صورة متحركة على الفورم بدون تايمر RaggiTech 0 551 17-10-12, 07:11 PM
آخر رد: RaggiTech
  كيف تشكل الفورم طبقا لأى صورة تريدها بدون اى عناء اعتمادا على صورة لديك RaggiTech 0 400 17-10-12, 07:09 PM
آخر رد: RaggiTech
  الحصول على لون معين من نقطة في صورة oneyemenweb2 0 272 17-10-12, 06:59 PM
آخر رد: oneyemenweb2
  لتغيير دقة العرض Screen Resolution RaggiTech 0 451 17-10-12, 06:05 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم