تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - الجزء الأول
#2
مثال علي الطريقة الرابعة
افتح مشروع جديد وأضف له PictureBox ثم استخدم الكود التالي


كود :
Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Dim s As String = "Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+"

Dim ImageStream As IO.Stream = New System.IO.MemoryStream(Convert.FromBase64String(s))

Dim bmp As Bitmap = New Bitmap(ImageStream)

PictureBox1.Image = bmp
PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage

End Sub

End Class
مثال أخر علي الطريقة الرابعة
افتح مشروع ثم استخدم الكود التالي لرسم الصورة من داخل الحدث Paint الخاص بالفورم


كود :
Public Class Form1

Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

Dim s As String = "Qk16AQAAAAAAADYAAAAoAAAAIwAAAAMAAAABABgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAAuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5uGMyuGMy+/n5+/n5ANj+RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5wm8/RzIomHRh+/n5ANj+RzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMzHtMRzIoRzIozHtMANj+"

Dim ImageStream As IO.Stream = New System.IO.MemoryStream(Convert.FromBase64String(s))

Dim bmp As Bitmap = New Bitmap(ImageStream)

e.Graphics.DrawImage(bmp, New Rectangle(0, 0, 100, 100))

End Sub

End Class
الطريقة الخامسة:
تعتمد هذه الطريقة علي استخدام OpenFileDialog ومن ثم تحميل الصورة أو رسمها أو استخدامها كما نريد
مثال علي الطريقة الخامسة
افتح مشروع جديد وأضف الي الفورم OpenFileDialog وباتون و PictureBox ثم استخدم الكود التالي


كود :
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

With OpenFileDialog1

.Multiselect = False
.Filter = "All Files|*.*|Bitmaps|*.bmp|GIFs|*.gif|JPEGs|*.jpg|PNGs|*.png"
.FilterIndex = 1
.FileName = ""

End With

If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

With PictureBox1
.Image = Image.FromFile(OpenFileDialog1.FileName)
.SizeMode = PictureBoxSizeMode.CenterImage
End With

End If

End Sub

End Class
في واقع الأمر هناك أفكار أخري من الممكن استخدامها لإضافة صور الي المشروع ومنها غلي سبيل المثال استخدام الداتا بيز مثل استخدام SQL أو استخدام MS Access لتخزين البيانات داخل ملف ثم استرجاع هذه البيانات في أي وقت نريده أو نتعامل معها كيفما شئنا
وهذه الطريقة سيكون لها مقال خاص بها لأهميتها
الأن وبعد أن ناقشنا كيفية إضافة الصور في بيئة الدوت نت لنسأل أنفسنا كيف نستفيد من مجموعة الأكواد السابقة بحيث يكون لدينا بالنهاية داله أو Function معينة يمكننا استخدامها في أي وقت نشاء وكما تحدثت سابقا فإن الهدف من هذا المقال هو إنشاء كلاس عام يمكننا أن نحوله الي ملف DLL وبالتالي يمكن أن نستخدمه في أي وقت نشاء بدون الحاجة الي تكرار كتابة الكود أكثر من مرة داخل الفورم
هيا بنا نبني أول Function من مجموعة الأكواد السابقة الخاصة بالجزء الأول في موضوعنا هذا وهو كيفية إضافة الصور الي الفورم
الكود التالي يوضح شكل Function ولقد أطلقت عليها اسم LoadImageFile


كود :
Public Shared Function LoadImageFile()

Dim ofd As New OpenFileDialog
With ofd
.Multiselect = False
.Filter = "All Files|*.*|Bitmaps|*.bmp|GIFs|*.gif|JPEGs|*.jpg|PNGs|*.png"
.FilterIndex = 4
.FileName = "Select image file"
End With

Dim bmpFile As String = ofd.FileName

If ofd.ShowDialog() <> DialogResult.OK Then
bmpFile = Nothing
Else
bmpFile = ofd.FileName

End If

LoadImageFile = bmpFile

End Function ' LoadImageFile Function
حاول عزيزي القارئ أن تقارن بين هذه Function والكود الموجود في المثال رقم الأول الخاص بالطريقة الأولي لإضافة الصور الي الفورم وأيضا الكود الموجود في المثال الأخير الخاص بالطريقة الخامسة ستجد أنه قد تم استخدامهما معا لإنشاء Function وسنلاحظ أيضا أن هذه Function تسترجع قيمة أو تساوي قيمة وهي عبارة عن String وهذا String قيمته تساوي File Name String
وكما تلاحظون أيضا أنه باستخدام هذه Function فإننا نعطي مستخدم البرنامج الأفضلية في اختيار وتحديد الصورة التي يريد إضافتها الي البرنامج آو الي الفورم
طبعا نفس الفكرة من الممكن استخدامها ليس فقط مع الصور ولكن يمكن استخدامها مع ملفات أخري أي أنك عزيزي القارئ يمكن أن تقوم بتطوير هذه Function وبالتالي تستخدمها كيفما شئت
و لقد قمت باستخدام Public Shared لأنني أنوي أن استخدم هذه Function في كلاس منفرد وذلك في أخر المقال
مثال علي استخدام Public Shared Function LoadImageFile()
ولتنفيذ المثال افتح مشروع جديد ثم أضف الي الفورم PictureBox و Button ثم استخدم الكود بالشكل التالي


كود :
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim bmpFileName As String = LoadImageFile()
If bmpFileName Is Nothing Then Exit Sub
Dim bmp As Bitmap = New Bitmap(bmpFileName)

PictureBox1.Image = bmp
PictureBox1.SizeMode = PictureBoxSizeMode.CenterImage

End Sub

Public Shared Function LoadImageFile()

Dim ofd As New OpenFileDialog
With ofd
.Multiselect = False
.Filter = "All Files|*.*|Bitmaps|*.bmp|GIFs|*.gif|JPEGs|*.jpg|PNGs|*.png"
.FilterIndex = 4
.FileName = "Select image file"
End With

Dim bmpFile As String = ofd.FileName

If ofd.ShowDialog() <> DialogResult.OK Then
bmpFile = Nothing
Else
bmpFile = ofd.FileName

End If

LoadImageFile = bmpFile

End Function ' LoadImageFile Function

End Class



بالتوفيق
أخوكم عمر
}}}


الردود في هذا الموضوع
التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - الجزء الأول - بواسطة Raggi Tech - 02-10-12, 03:06 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  نظرة على DropBox SDK و التعامل معها +برنامج رفع و تحميل ملفات ابو ليلى 5 5,969 16-08-24, 04:39 PM
آخر رد: ackore
  الجزء الثالث من:كيف تجعل الـ Text Box ذكي!يترجم العمليات الحسابية ويخرج الناتج (الأقواس المتعددة) !! أنس محمود 10 8,383 19-07-22, 12:15 AM
آخر رد: StartLight4000
Video [درس فيديو] تقارير الكريستال ريبورت وتغيير مسار الصور أثناء التشغيل رمضان272 0 1,999 28-03-22, 03:18 AM
آخر رد: رمضان272
  شرح خوارزميات معالجة الصور (من دروس الاستاذ فوزي برزنجي) ناديه الشجيري 19 35,532 20-02-22, 02:13 PM
آخر رد: رضوان الجماعي
  التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - مقدمة RaggiTech 3 6,341 30-07-21, 05:14 PM
آخر رد: kebboud
Lightbulb [مقال] التعامل مع ملفات اوفيس من خلال مكتبة NPOI ابو ليلى 2 4,616 01-07-21, 11:42 AM
آخر رد: kebboud
Lightbulb [مقال] التعامل مع اختصارات الملفات Shortcuts Magic Sword 2 4,707 01-10-20, 11:36 AM
آخر رد: abomo3ath
  [مقال] دوال التعامل مع النصوص Strings - VB.NET ابو ليلى 10 27,153 15-04-19, 07:09 PM
آخر رد: alsouf
  Compare Images المقارنة بين الصور Abu Ehab 0 3,642 31-10-18, 04:27 PM
آخر رد: Abu Ehab
  اصنع محرر أكواد خاص بك باستخدام الأداة RichTextBox السكر المغرور 13 8,180 19-08-18, 09:27 AM
آخر رد: elgokr

التنقل السريع :


يقوم بقرائة الموضوع: