در برخی برنامه های تحت ویندوز، گاهی نیاز می باشد که از صفحه نمایش مانیتور یک و یا چند عکس گرفته و عملیات خاصی را روی آن انجام دهیم.
تا قبل از انتشار Dot Net Framework 2.0 این عمل توسط GDI انجام می شد. ولی اکنون با استفاده از متدی به نام CopyFromScreen ، این عمل به سادگی قابل انجام می باشد.
شروع:
برای انجام این کار، ابتدا نیاز داریم یک تصویر Bitmap به اندازه طول و عرض صفحه نمایش ایجاد نماییم.
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
سپس یک شی گرافیک از نوع این Bitmap ایجاد نموده و متد CopyFromScreen را روی آن اعمال می نماییم.
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
اکنون شی Bitmap، دارای تصویر مورد نظر ما می باشد و می توانیم آن را ذخیره نموده (bmp.Save) و یا در داخل یک PictureBox نمایش دهیم.
در قطعه کد زیر، یک تصویر از صفحه نمایش تهیه نموده و داخل یک کنترل PictureBox نمایش داده ایم.
if (pictureBox1.Image != null) pictureBox1.Image.Dispose();
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,Screen.PrimaryScreen.Bounds.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
g.Dispose();
pictureBox1.Image = bmp;
pictureBox1.Size = bmp.Size;