تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
Rainbow موضوع شامل عن قواعد البياناتC# VB.NET DK-x 0 71 28-11-18, 12:42 AM
آخر رد: DK-x
  Compare Images المقارنة بين الصور Abu Ehab 0 95 31-10-18, 04:27 PM
آخر رد: Abu Ehab
Rainbow [كود] بعض خواص قواعد البيانات اسامه الهرماوي 2 259 13-10-18, 01:39 AM
آخر رد: اسامه الهرماوي
  قاعدة بيانات مضمنة مع البرنامج viv 5 418 27-09-18, 08:01 PM
آخر رد: viv
  مقدمة إلي ضغط الصور ..... Zip Bitmap silverlight 0 234 10-05-18, 04:35 AM
آخر رد: silverlight
  [SQL] بخصوص قاعدة بيانات postgres tarek 1 209 08-05-18, 02:55 AM
آخر رد: viv
  [درس فيديو] شرح ربط البرنامج بقاعدة بيانات, إدراج حذف تعديل جلب البيانات ( بدون أن تكتب سطر واحد) عبدالله الدوسري 4 528 08-02-18, 12:55 AM
آخر رد: Ameer Eagle
  التعامل مع الصور Images في بيئة الدوت نت باستخدام +GDI - مقدمة RaggiTech 2 1,445 22-01-18, 12:49 AM
آخر رد: amna jamal
  كيفية عمل برنامج للأذان + قاعدة بيانات لـ 252 دولة و 9512 مدينة ! : مبرمج أوتار 2 12,643 25-11-17, 01:21 PM
آخر رد: محمد خالد
  [شرح] اتصال بقاعدة بيانات اكسيس , اضافة بيان , تعديل بيان , حذف بيان , عرض البيانات . ahmed salam 23 17,339 03-11-17, 09:27 PM
آخر رد: تنمية المعرفة

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


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