برخی اوقات شاید نیاز داشته باشیم تا کدی بنویسیم که از صفحه، اسکرین شات تهیه کند (به عبارتی از صفحه کامپیوتر، عکس بگیرد).
مراحل انجام کار
برای گرفتن یک اسکرین شات از کل صفحه و قرار دادن آن در یک Bitmap، به صورت زیر عمل میکنیم:
1 2 3 4 |
Rectangle r = Screen.PrimaryScreen.Bounds; Bitmap b = new Bitmap(r.Width, r.Height); Graphics g = Graphics.FromImage(b as Image); g.CopyFromScreen(0, 0, 0,0 , b.Size); |
خط اول: از کلاس Screen، به PrimaryScreen که آبجکت اسکرین اصلی صفحه را برمیگرداند، مقدار Bounds را دریافت میکنیم. Bounds به محدودهی Screen اشاره دارد که از نوع آبجکت مستطیل/مربع نیز تعریف شده است.
خط دوم: یک شیء بیتمپ، در ابعاد طول و عرض محدودهی صفحه ایجاد میکنیم.
خط سوم: یک شیء گرافیکی از بیتمپ ایجاد میکنیم.
خط چهارم: شیء گرافیکی شامل تابعی به نام CopyFromScreen میباشد که حالتهای مختلف ورودی داشته و یکی از حالتهای آن به صورت زیر میباشد؛ که در اینجا پنج ورودی دریافت شده است:
- ورودی اول: نقطی شروع X یا فاصله از چپ صفحه
- ورودی دوم: نقطهی شروع Y یا فاصله از بالای صفحه
- ورودی سوم: نقطهی پایان X یا فاصله از راست صفحه
- ورودی چهارم: نقطهی پایان Y یا فاصله از پایین صفحه
- ورودی پنجم: اندازهی بلاک (طول و عرض)
در نهایت میتوانیم بیتمپ را برای مثال در یک پیکچرباکسی نمایش دهیم: (یا آن را اگر نیاز داشتیم ذخیره کنیم)
1 |
pictureBox1.Image = b; |
نظرات ثبت شده بدون دیدگاه