22-12-16, 09:01 PM
(آخر تعديل لهذه المشاركة : 22-12-16, 09:08 PM {2} بواسطة silverlight.)
تصوير شاشة الكمبيوتر بيحتاج اننا نخلق صورة بأبعاد تساوي ابعاد شاشة الكمبيوتر
مثلا لو نظرت الي الكود التالي هو بسيط جدا و نحن هنا لا نقوم بتصوير شاشة الكمبيوتر نهائي
نحن فقط نخلق الصورة و نحفظها و هنا ستلاحظ ان و في حالة عدم وجود لون الجرافكس الموجودة في الدوت نت ستقوم بملأ الصورة باللون الأسود
الكود التالي مشابه تماما للكود أعلاه و فقط عليك ان تلاحظ انني ملأت الصورة باللون الشفاف حاول تغير اللون و لتري ما سيحدث معك
عموما كل الطرق ستؤدي لنفس الغرض
الفكرة فقط في الكود الأول هو الحصول علي اللون الشائع في شاشات الكمبيوتر بشكل عام
و نملأ به الصورة
ثم نقوم بتصوير الشاشة و هذا ما يمكنك ان تطلق عليه MaskedImage
أي أن الصورة الظاهرة لكي تراها العين لها خلفية بلون ثابت كأنهم صورة مرسومة فوق صورة
وهذا الأمر له علاقة بشفافية الصور بشكل عام أيضا له علاقة بالفورم و الكونترول خصوصا و ان الفورم أو كل الكونترول يتم رسمهم علي صورة أصلا
عموما الكود يمكن كتابته بصور اخري كالتالي
أ و كالتالي
حاول توقف السطر الخاص بتصوير الشاشة و لتري ماذا سيحدث معك كالتالي
لم اعلن عن متغير حتي يتم التخلص من الصورة مباشرة بعد تنفيذ الأمر من أجل عملية Disposing للصورة التي تم تخليقها و ليس للصورة التي يتم حفظها
مثلا لو نظرت الي الكود التالي هو بسيط جدا و نحن هنا لا نقوم بتصوير شاشة الكمبيوتر نهائي
نحن فقط نخلق الصورة و نحفظها و هنا ستلاحظ ان و في حالة عدم وجود لون الجرافكس الموجودة في الدوت نت ستقوم بملأ الصورة باللون الأسود
PHP كود :
Dim rect As Rectangle = Screen.PrimaryScreen.Bounds
Dim scrBitmap As Bitmap = New Bitmap(rect.Width, rect.Size.Height)
scrBitmap.Save((".\" & DateTime.Now.ToFileTimeUtc & ".jpg"), Imaging.ImageFormat.Jpeg)
الكود التالي مشابه تماما للكود أعلاه و فقط عليك ان تلاحظ انني ملأت الصورة باللون الشفاف حاول تغير اللون و لتري ما سيحدث معك
PHP كود :
Dim rect As Rectangle = Screen.PrimaryScreen.Bounds
Dim scrBitmap As Bitmap = New Bitmap(rect.Width, rect.Size.Height)
Using g As Graphics = Graphics.FromImage(scrBitmap)
g.Clear(Color.Transparent)
End Using
scrBitmap.Save((".\" & DateTime.Now.ToFileTimeUtc & ".jpg"), Imaging.ImageFormat.Jpeg)
عموما كل الطرق ستؤدي لنفس الغرض
الفكرة فقط في الكود الأول هو الحصول علي اللون الشائع في شاشات الكمبيوتر بشكل عام
و نملأ به الصورة
ثم نقوم بتصوير الشاشة و هذا ما يمكنك ان تطلق عليه MaskedImage
أي أن الصورة الظاهرة لكي تراها العين لها خلفية بلون ثابت كأنهم صورة مرسومة فوق صورة
وهذا الأمر له علاقة بشفافية الصور بشكل عام أيضا له علاقة بالفورم و الكونترول خصوصا و ان الفورم أو كل الكونترول يتم رسمهم علي صورة أصلا
عموما الكود يمكن كتابته بصور اخري كالتالي
PHP كود :
Dim rect As Rectangle = Screen.PrimaryScreen.Bounds
Using scrBitmap As Bitmap = New Bitmap(rect.Width, rect.Size.Height)
Using g As Graphics = Graphics.FromImage(scrBitmap)
g.CopyFromScreen(rect.Location, rect.Location, rect.Size, CopyPixelOperation.SourceCopy)
scrBitmap.Save((".\" & DateTime.Now.ToFileTimeUtc & ".jpg"), Imaging.ImageFormat.Jpeg)
End Using
End Using
أ و كالتالي
PHP كود :
Dim rect As Rectangle = Screen.PrimaryScreen.Bounds
Using scrBitmap As Bitmap = Image.FromHbitmap(New Bitmap(rect.Width, rect.Size.Height).GetHbitmap())
Using g As Graphics = Graphics.FromImage(scrBitmap)
g.CopyFromScreen(rect.Location, rect.Location, rect.Size, CopyPixelOperation.SourceCopy)
scrBitmap.Save((".\" & DateTime.Now.ToFileTimeUtc & ".jpg"), Imaging.ImageFormat.Jpeg)
End Using
End Using
حاول توقف السطر الخاص بتصوير الشاشة و لتري ماذا سيحدث معك كالتالي
PHP كود :
Dim rect As Rectangle = Screen.PrimaryScreen.Bounds
Using scrBitmap As Bitmap = Image.FromHbitmap(New Bitmap(rect.Width, rect.Size.Height).GetHbitmap())
'Using g As Graphics = Graphics.FromImage(scrBitmap)
'g.CopyFromScreen(rect.Location, rect.Location, rect.Size, CopyPixelOperation.SourceCopy)
scrBitmap.Save((".\" & DateTime.Now.ToFileTimeUtc & ".jpg"), Imaging.ImageFormat.Jpeg)
'End Using
End Using

