منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] مشروع برنامج لعرض الصور - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] مشروع برنامج لعرض الصور (/showthread.php?tid=35878)



مشروع برنامج لعرض الصور - Doctor GME - 29-07-20

هذه هى واجهة البرنامج



أنهيت وظيفة زر load لاختيار وعرض الصورة فى picturebox
والمفترض أن يقوم زر next بعرض الصورة التالية بشكل أوتوماتيكى دون اللجوء ل open file dialog مرة أخرى
ونفس الشىء بالنسبة لزر previous
ولكنى لم أتوصل لطريقة أحدد بها الملف السابق أو التالى لما تم اختياره عن طريق open file dialog
المشروع بالكامل فى المرفقات


RE: مشروع برنامج لعرض الصور - alshandodi - 29-07-20

اتمنى ان يكون ذو فائدة لك اخي العزيز 

لقد قمت بعمل تحديد للصور من عدة اماكن  في ليست بوكس ولكن احتاج الى كود اضافة الليست الى السيتنج 
ولك جزيل الشكر والتقدير


RE: مشروع برنامج لعرض الصور - Anas Mahmoud - 29-07-20

تفضل اخي الكريم

المصادر :
https://stackoverflow.com/questions/23318542/how-to-load-next-image-in-the-folder


RE: مشروع برنامج لعرض الصور - alshandodi - 29-07-20

شكر خاص للاستاذ انس محمود واعتذر منه ساضيف في حاله التغيير تلقائي ويضع في تايمير 
كود :
  Dim i As Integer
       i = Images.IndexOf(CurrentImage) + 1
       If i < Images.Count Then
           CurrentImage = Images(i)

           Try
               PictureBox1.Image = Image.FromFile(CurrentImage)
           Catch ex As Exception
               'الصورة ليست صالحة او لم تعد كذلك
           End Try
       Else
           CurrentImage = Images(0)
           PictureBox1.Image = Image.FromFile(CurrentImage)

       End If



RE: مشروع برنامج لعرض الصور - Doctor GME - 03-08-20

شكراً أخى alshandodi
الجزء الخاص بالتايمر مفيد جداً

شكراً أخى Anas Mahmoud
هذا ما كنت أريده وبعد بعض التعديلات حصلت على ما أريده

كنت أريد إضافة خاصية zoom
جربت هذه الطريقة ولكنها لم تنجح:
كود :
   Private Sub GetZoom(zoomSize As String, MyPicbox As PictureBox)

       Dim bmp As New Bitmap(MyPicbox.Image)
       Dim newWidth As Integer = MyPicbox.Image.Width / zoomSize
       Dim newHeight As Integer = MyPicbox.Image.Height / zoomSize
       Dim bmpNew As Bitmap = New Bitmap(newWidth, newHeight)
       Dim gr As Graphics = Graphics.FromImage(bmpNew)
       gr.DrawImage(bmp, 0, 0, bmpNew.Width, bmpNew.Height)
       MyPicbox.Image = bmpNew

   End Sub

فهى تضعف جودة الصورة إذا تم تصغيرها ثم تكبيرها مجدداً


RE: مشروع برنامج لعرض الصور - ابراهيم ايبو - 03-08-20

السلام عليكم ورحمة الله وبركاته
اخي الكريم 
ابسط طريقة لعمل زوم للصورة هو التالي :
1 تجعل خاصية الاحتواء للصورة StretchImage  او Zoom ضروري
وتلغي ال Border الخاص بالصورة ان احببت
2- تضع  بوتون عدد 2 واحد للتكبير والثاني للتصغير
للتكبير * 2 في كل مرة
كود :
PictureBox1.Width = PictureBox1.Width * 2
           PictureBox1.Height = PictureBox1.Height * 2
وللتصغير /2 في كل مرة
كود :
PictureBox1.Width = PictureBox1.Width / 2
       PictureBox1.Height = PictureBox1.Height / 2
في هذه الطريقة انت تقوم بتكبير كونترول الصورة نفسها وبما ان خاصية الاملاء هي التمدد فحتما ستتمدد الصورة لتملأ الكونترول
وانت هنا لاتقوم بتغيير اي شيء للصورة الاصلية (الحجم يبقى على حاله في التصغير والتكبير) فقط زوم مشاهدة
اما طريقة اعادة انشاء صورة فهذا يعني انك تغير من الحجم الحقيقي للصورة عند التكبير سيزداد حجمها ... وقد يصل الىارقام كبيرة
وعند التصغير ايضا تقوم بتصغير الحجم مما يؤدي الى فقدان الصورة لدقتها عند اعادة تكبيرها
ارجو ان اكون قد افدتك