إلتقاط صور وفيديو من الكاميرا - سي شارب - مقـــالات - Top Coder
Welcome to our Site
الدخــول Or تسجـــيل
الثلاثاء
2016-12-06
1:10 PM
تسجــــيل | دخـــول
الرئيسية » مقالات » سي شارب

إلتقاط صور وفيديو من الكاميرا
إلتقاط صور وفيديو من الكاميرا

مقـــدمه
سنعرض اليوم كيفية عرض ما تلتقطه كاميرا الويب الموصله بالجهاز , وايضاً إلتقاط صورة وحفظها بطريقه سهله وبسيطه .
WebCamCapture Control
سنعتمد اليوم على كنترول جاهز اسمه WebCamCapture , هذا الكنترول في الأساس مصنوع بدوال API كثيره تقوم بمخاطبة الكاميرا الموصله بالجهاز , واخذ الصور منها باستمرار , وبعد البحث وجدت كلاس يحتوي على هذا الكنترول جاهزاً للإستخدام دون الدخول في تعقيدات ال API , ولتكون العملية ابسط , وكل ما عليك الا اضافة الكلاس الى الكنترول بوكس في مشروعك واستخدام الكنترول مباشرة , ويتم اضافة الكلاس كالتالي :
من التوول بوكس Tool Box تضغط كليك يمين وتحتار Choose Items ستظهر لك نافذه اضغط على Browse ثم حدد مكان المكتبه WebCam_Capture.dll واضغط اضافة ثم ok , ستجد ان كنترول جديد اضيف الى التوول بوكس باسم WebCamCapture , فقط ادرج الكنترول داخل الفورم ليظهر لك في الأسفل الكنترول الجديد , حيث انه ليس كنترول مرئي , ولكنه مكون Component .
استخدام الكنترول
حتى الأن نحن لم نستفد من هذا الكنترول الجديد , وقبل عرض طريقة الأستخدام , نذكر بعض اهم الخصائص الخاصه به والتي تحدد كيفية عمل الكنترول :
1- CaptureWidth وهي تحدد عرض اللقطه المأخوذه .
2- CaptureHeight وهي تحدد طول اللقطه .
3- TimeToCapture_millisecond وهي تحدد الوقت بين كل صورة مأخوذه من الكاميرا بالملي ثانيه .

ومن خلال هذه الخصائص تحدد طريقه عرض ما تلتقطه الكاميرا داخل البرنامج , وهناك دالتين هامتين داخل الكنترول وهما
1- Start وهي التي تقوم ببدأ عرض الكاميرا .
2- Stop وتقوم بإيقاف العرض .

والأن لنبدأ في كتابه الكود , كل ما عليك الا ادراج PictureBox ليتم عرض الكاميرا بداخله , ثم نبدأ بأول خطوه وهي تفعيل الحدث ImageCaptured .

حيث نقوم بتفعيل الحدث داخل داله الكونستركتور الخاصه بالبرنامج - ويمكن ايضا داخل دالة تحميل البرنامج Form_Load - حيث يكون شكل الداله كالتالي بعد اضافه الحدث داخلها  
Fire the Event
 
وبعد ذلك ستظهر لك دالة الحدث الخاصه به , وكل ما عليك ان تضع بداخلها سطر بسيط من الكود
pictureBox1.Image = e.WebCamImage;

حيث ان هذا السطر سيقوم بوضع الصورة الملتقطه من الكاميرا داخل PictureBox1 , حيث سيعمل الكنترول باخذ صورة من الكاميرا كل فترة من الوقت يحددها الخاصيه TimeToCapture_millisecond , فمثلا افتراضياً تكون قيمة هذه الخاصيه 100 , وبذلك فأن كل 100 ملي ثانيه سيلتقط الكنترول صورة جديده ويعرضها , وهذا يعني ظهور 10 صور كل ثانيه , ويمكنك التحكم في وقت الالتقاط بتغيير تلك الخاصيه .

ولكن هذا الحدث لن يعمل الا في حالة تشغيل عملية الألتقاط من خلال الداله Start , حيث يمكنك تشغيلها من خلال زر ووضع كود التشغيل داخل الحدث الخاص به
webCamCapture1.Start(0);

ويمكن عمل زر اخر لإيقاف العرض من خلاله , بوضع الكود التالي في حدثه
webCamCapture1.Stop();

وبذلك يكون شكل كود الحدث والتشغيل والايقاف كالتالي :
Code
حفظ لقطه
ويمكنك حفظ لقطه معينه من خلال كود بسيط خاص ب PictureBox

pictureBox1.Image.Save("File Path");
ختـــام
هذه الطريقه بسيطه جدا لعرض الكاميرا داخل البرنامج , حيث حالفنا الحظ بايجاد مكتبه جاهز تحتوي على الكلاس , وتوفير عناء الدخول في تفاصيل دوال API , وقد تم الإستعانه بمقاله في موقع الفريق العربي للبرمجه وهذا رابط المقاله
http://www.arabteam2000-forum.com/index.php?showtopic=102025

تحميل المشروع
 Written by :  Mohammed Mahmoud
الفئة: سي شارب | أضاف: ham_mody2000 (2011-10-08 1:41 AM)
مشاهده: 2950 | الترتيب: 0.0/0


أترك تعليقك من خلال حسابك على الفيس بوك

تعليقات مشتركي الموقع

مجموع المقالات: 0
إضافة تعليق يستطيع فقط المستخدمون المسجلون
[ التسجيل | دخول ]
طريقة الدخول
بحث
Our Facebook community

تم إطلاق صفحة توب كودر على الفيس بوك

Advertisment
الأحـــدث
hitstatus
Copyright Mohammed Mahmoud © 2016
إنشاء موقع مجاني с uCoz