المشاركات : 165
المواضيع 43
الإنتساب : Apr 2018
السمعة :
5
الشكر: 116
تم شكره 143 مرات في 78 مشاركات
10-07-19, 08:07 PM
(آخر تعديل لهذه المشاركة : 10-07-19, 08:11 PM {2} بواسطة issamsaidd.)
السلام عليكم ورحمة الله وبركاتة
عندى مشكله صغيرة برنامج vlc الشهير احينا بفتح علية قنوات معينة
وعندى مشكله كا الاتى اريد اخذ لقة صورة اثناء عرض الفديو لاستخدام معين وحفظها
الحفظ لا مشكله معة ولكن عند الضغط على التقاط صورة وعند تحويلها الى pictureBox1
تظهر بلوان اسود اريد معالم الصورة الاصلية ان تظهر فى pictureBox1 وشكرا لكم صورة توضحية ورابط السورس
السورس كود
ملاحظة فى رابط فيدو داخلى عند تشغيل البرنامج يعمل بشكل مباشر
واشكركم على المساعدة مقدما
الرابط الى تم التجربة عليه
كود :
pictureBox1.Visible = true;
axVLCPlugin21.playlist.togglePause();
Rectangle screenSize = new Rectangle(0, 0, 300, 300);
// Bitmap target = new Bitmap(screenSize.Width, screenSize.Height);
Bitmap target = new Bitmap(100, 100);
axVLCPlugin21.DrawToBitmap(target, screenSize);
pictureBox1.Image = target;
axVLCPlugin21.playlist.play();
pictureBox1.Image.Save(@"C:\Pic\\kk.jpg");
المشاركات : 15
المواضيع 0
الإنتساب : Jul 2019
السمعة :
4
الشكر: 1
تم شكره 46 مرات في 15 مشاركات
10-07-19, 09:14 PM
تفضل
PHP كود :
axVLCPlugin21.playlist.togglePause(); String tempPath = Path.GetTempPath(); string imgPath = tempPath + @"Captured.jpg"; Bitmap bmpScreenshot = new Bitmap(axVLCPlugin21.ClientRectangle.Width,axVLCPlugin21.ClientRectangle.Height); Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot); System.Drawing.Size imgSize = new System.Drawing.Size(axVLCPlugin21.ClientRectangle.Width,axVLCPlugin21.ClientRectangle.Height); Point ps = PointToScreen(new Point(axVLCPlugin21.Bounds.X, axVLCPlugin21.Bounds.Y)); gfxScreenshot.CopyFromScreen(ps.X, ps.Y, 0, 0, imgSize, CopyPixelOperation.SourceCopy); bmpScreenshot.Save(imgPath, System.Drawing.Imaging.ImageFormat.Jpeg); MessageBox.Show("Image saved : " + imgPath); pictureBox1.Image = bmpScreenshot; axVLCPlugin21.playlist.togglePause();
موفق ان شاء الله
المشاركات : 165
المواضيع 43
الإنتساب : Apr 2018
السمعة :
5
الشكر: 116
تم شكره 143 مرات في 78 مشاركات
شكرا لك اخى الكريم عندى لاب توب علية كرت خارجى عند التقاط الصورة تظهر هكذا
المشاركات : 15
المواضيع 0
الإنتساب : Jul 2019
السمعة :
4
الشكر: 1
تم شكره 46 مرات في 15 مشاركات
12-07-19, 05:34 PM
(آخر تعديل لهذه المشاركة : 12-07-19, 05:35 PM {2} بواسطة Eng.Ahmed Amen.)
ممكن المعالجه بطيئه عندك
اضف بعد axVLCPlugin21.playlist.togglePause();
PHP كود :
axVLCPlugin21.playlist.togglePause();
System.Threading.Thread.Sleep(1000);
وتأكد انك حذفت كل كود Button
Take
المشاركات : 165
المواضيع 43
الإنتساب : Apr 2018
السمعة :
5
الشكر: 116
تم شكره 143 مرات في 78 مشاركات
13-07-19, 09:23 AM
(آخر تعديل لهذه المشاركة : 13-07-19, 10:21 AM {2} بواسطة issamsaidd.)
اخى الكريم شكرا لك على ما قدتمة
جربت ولم يزبط مع العلم جهاز جيل سابع معالج i5 ورام 12 وهارد ssd وكرت خارجى 4 ودخلى 2 ج
الفكره ان اضافة vlc الاولى كان بها تاخر زمنى كبير فى عرض القناة المراد مشاهدتها وبحث وجدت احد
الاخوة فى اليبان كان عارض حل لهذه المشكله عبر اضافة vlc من من الفيجول طبقت الاعدات وشرحه وفعلا كانت
بدون تاخر زمنى تعمل بشكل سليم ولكن احتاج اخذ صورة وتكون بجودة علية وحفظ الصورة بتاريخ اليوم والساعة والزمن
المشروع كله هلفرعله لك وده ايضا رابط الفكره من الموقع البيبانى
رابط السورة كود
اتمنى ان تحل مشكله الصورة وان تكون بجوده علية فى اخذها وان تحفظ بتاريخ اليوم شهر يوم ساعة ثانية م او ص
PHP كود :
[align=center] string s = DateTime.Now.ToString();[/align] [align=center] pictureBox1.Image.Save("D:\\img\\+s.jpg");[/align]
وهذا هو الكود الى استخدمتة ولكن ما زبط معى وشكرا لك على تقديم الدعم
اخى الكريم جربت على جهاز مكتبى علية كرت خارجى واحد فقط اشتغل تمام بس الصورة حجمها صغير وبكسلات العرض كبيرة كيف لى ان اكبر حجم الصورة المحفوظة ولا يهم الباقى بس حجم الصورة حاليا
المشاركات : 165
المواضيع 43
الإنتساب : Apr 2018
السمعة :
5
الشكر: 116
تم شكره 143 مرات في 78 مشاركات
هذا هو الكود لوكن كيف لى ان اجعلة يقبل المقسات يدويا وليس مقاس vlc نفسة
الكود
PHP كود :
vlcControl1.Pause(); Rectangle screenSize = new Rectangle(0, 0, 300, 300); Bitmap bmpScreenshot = new Bitmap(vlcControl1.screenSize.Width, vlcControl1.screenSize.Height); Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot); System.Drawing.Size imgSize = new System.Drawing.Size(vlcControl1.ClientRectangle.Width, vlcControl1.ClientRectangle.Height); Point ps = PointToScreen(new Point(vlcControl1.Bounds.X, vlcControl1.Bounds.Y)); gfxScreenshot.CopyFromScreen(ps.X, ps.Y, 0, 0, imgSize, CopyPixelOperation.SourceCopy);
pictureBox1.Image = bmpScreenshot; pictureBox1.Image.Save("D:\\x\\+s.jpg"); vlcControl1.Play(); }
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
13-07-19, 10:43 PM
(آخر تعديل لهذه المشاركة : 14-07-19, 03:58 PM {2} بواسطة asemshahen5.)
جرب هذا الكود :
اي استخدم الكود التالي لتحجيم الصورة قبل تحميلها إلى البكتشر بوكس :
PHP كود :
public Image ResizeImage(Image InputImage) { return new Bitmap(InputImage,new Size(1024,768)); }
ليصبح كود تحميل الصورة الى البكتشر بوكس كالتالي :
PHP كود :
pictureBox1.Image =ResizeImage(bmpScreenshot);
ليصبح الكود كاملا كالتالي :
PHP كود :
private void button2_Click(object sender, EventArgs e) { vlcControl1.Pause();
Bitmap bmpScreenshot = new Bitmap(vlcControl1.Width, vlcControl1.Height); Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);
System.Drawing.Size imgSize = new System.Drawing.Size(vlcControl1.ClientRectangle.Width, vlcControl1.ClientRectangle.Height); Point ps = PointToScreen(new Point(vlcControl1.Bounds.X+8, vlcControl1.Bounds.Y+8)); gfxScreenshot.CopyFromScreen(ps.X, ps.Y, 0, 0, imgSize, CopyPixelOperation.SourceCopy);
pictureBox1.Image =ResizeImage(bmpScreenshot); pictureBox1.Image.Save(@"D:\Images\" + DateTime.Now.ToString("yyyy-MM-dd_hh-mm-ss tt") + "S.png", System.Drawing.Imaging.ImageFormat.Png); vlcControl1.Play(); } public Image ResizeImage(Image InputImage) { return new Bitmap(InputImage,new Size(1024,768)); }
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 165
المواضيع 43
الإنتساب : Apr 2018
السمعة :
5
الشكر: 116
تم شكره 143 مرات في 78 مشاركات
المشاركات : 2,324
المواضيع 81
الإنتساب : May 2018
السمعة :
522
الشكر: 13917
تم شكره 5687 مرات في 2270 مشاركات
الحمد الله والشكر الله .
موفق ان شاء الله .
سبحان الله وبحمده سبحان الله العظيم و الحمد لله ولا اله الا الله والله اكبر
المشاركات : 165
المواضيع 43
الإنتساب : Apr 2018
السمعة :
5
الشكر: 116
تم شكره 143 مرات في 78 مشاركات
شكرا لك اخى الكريم بس شفت ممكن تاخد صورة عن طريف
كود :
axVLCPlugin21.video.takeSnapshot();
لما جربتها فى برنامج vlc الصورة جدا جدا جدا واضحة الى اقصد حد كيف يمكن عمل هذا الطريقة ووضع الصورة فى pictureBox1
لان جودتها جدا عالية غير الكود الى جربناه
|