تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
الحلقة التاسعة من السلسلة 167 حفظ الصور في تطبيق قواعد بيانات
#1
كاتب الموضوع : FlyToAbd

السلام عليكم ورحمة الله وبركاته
إن برامج قواعد البيانات لابد ما تحتوي على عناصر تكون من خصائصها الصورة، فإذا أضيفت صور العناصر إلى البرنامج تعتبر من الإمكانيات المكملة له
توجد طريقة بسيطة لحفظ الصور في نظام فيه قواعد بيانات وسريعة التنفيذ وهي ناجحة جدا وهي انك تضع صور الموظفين كملفات JPG في مجلد جنب قاعدة البيانات ويكون اسم الصورة مثلا Emp_234.Jpg للموظف الذي الرقم المعرف له 234 وبالبرنامج لما تستلم الصورة احفظها بالاسم المناسب كما مبين وبذلك المجلد وعند حذف الموظف احذف معه ملف الصورة
وانصح عند جلب الصورة لا تستخدم الفتح الاعتيادي اللي هو


كود :
Dim Img as new Bitmap("filename")
PictureBox1.Image= Img
لأن هذي الطريقة تجعل الملف يبقى غير قابل للتغير حتى ينتهي البرنامج يعني إذا استعرضت موظف معين ورأيت صورته لا تقدر على تغييرها لان الملف لا يمكن حذفه أو تغييره

الطريقة المثلى لجلب صورة من ملف خارجي هي

كود :
Public Function ImageFromFile )ByVal ImagePath As String) As Bitmap
Dim Ret As Bitmap = Nothing
Try
Dim fs As New System.IO.FileStream(ImagePath, IO.FileMode.Open, IO.FileAccess.Read)
Ret = System.Drawing.Image.FromStream(fs(
fs.Close()
Catch ex As Exception
End Try
Return Ret
End Function
ضع هذه الدالة في مكان عام واستدعيها ومرر لها اسم الملف بمساره ترجع لك الصورة من غير ما تحجز عليك

هذا الحل الفوري للمشكلة وأنصح به في في الاحوال التي لا تحتاج الى حماية الصور

الطريقة الثانية اضافة الصور بداخل قواعد البيانات
عيب هذه الطريقة انه لازم تعرف انه الصور لو وضعت بقاعدة البيانات سيكبر الحجم بأضعاف ما هو عليه
وميزتها انه الصور مشفرة غير قابلة للتلاعب

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

خلاصة عملية اضافة الصورة الى قاعدة البيانات تتلخص بتحويل الصورة الى مصفوفة بايتات وتحفظ البايتات هذه في قاعدة البيانات في الحقل المطلوب وعند استرجاع الصورة نجلب تلك البايتات ونحولها الى صورة كما في الاكواد التالية

كود :
Private Function ImageToByteArray(ByVal ImageIn As System.Drawing.Image) As Byte()
Dim ms As New IO.MemoryStream()
ImageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
Return ms.ToArray()
End Function
Private Function ByteArrayToImage(ByVal ByteArrayIn As Byte()) As Image
Dim ms As New IO.MemoryStream(ByteArrayIn)
Dim returnImage As Image = Image.FromStream(ms)
Return returnImage
End Function
الرد }}}}
تم الشكر بواسطة: nabil1982


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 20 9,108 26-09-16, 08:12 AM
آخر رد: abumuhannadzym
  طباعة بيانات موجودة في برنامج على ( 2003 Microsoft Office Word ) abulayth 1 279 11-09-16, 07:20 AM
آخر رد: أبووسم
  مشروع لجلب الصور من الماسحة الضوئية (Scanner) m.sami.ak 12 4,032 25-08-16, 09:30 PM
آخر رد: jassim316
  مشكلة في الاتصال بقاعدة بيانات Mr.Fenix 2 187 19-08-16, 09:34 AM
آخر رد: Mr.Fenix
  شرح خوارزميات معالجة الصور (من دروس الاستاذ فوزي برزنجي) ناديه الشجيري 14 7,807 09-04-16, 11:26 PM
آخر رد: بديع
  [درس فيديو] حل مشكلة صلاحيات قواعد البيانات عند تغيير مسارها على الجهاز Operating System Error 5 أحمد النجار 1 416 31-12-15, 02:52 AM
آخر رد: WAEL ABED
  [VB.NET] تشغيل Twain الخاص بسحب الصور من السكنر في حالة net framework4 ahmed saleh 4 672 25-10-15, 07:20 PM
آخر رد: عدنان الشمري
  [VB.NET] التعامل مع الصور في vb net أحمد النجار 2 1,014 03-06-15, 10:45 PM
آخر رد: أحمد النجار
  [VB.NET] الأتصال بقاعدة بيانات اكسس2007 مع فجوال 2010 raaddawood 1 577 27-05-15, 03:40 PM
آخر رد: قناص المدينة
  [VB.NET] كيفية انشاء قاعدة بيانات برمجيا VB.net (صوت وصورة) أحمد النجار 0 727 18-01-15, 06:59 AM
آخر رد: أحمد النجار

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم