Convert Bitmap To Integer & Viceversa
هناك أساليب كثيرة
لتخزين
الصورة في ملف أو لتخزين الصورة في قواعد البيانات وأحد هذه الأساليب هو تخزين الصورة علي هيئة
مصفوفة من البايت ثم استرجاعها عن طريق تحويل مصفوفة البايت الي صورة
|
لكن هل فكرت
يوما في تخزين الصورة علي هيئة رقم ثم ومن هذا الرقم يتم استرجاع الصورة
|
في هذا الموضوع سيتم توضيح كيفية تحويل الصورة الي رقم
حيث يمكن وبكل سهولة تخزين الرقم في ملف عادي او
في ملف قواعد البيانات الخاصة بك ثم و عندما تريد إظهار
الصورة مرة أخري تقوم بتحويل الرقم الذي تم تخزينه الي صورة مرة أخري
|
أهم مميزات
الفكرة هذه هي أنك تستطيع أن تخزن الصور بدون استهلاك اي مساحة علي الهارد ديسك او استهلاك مساحة في ملف الداتا بيز
أيضا هذا الموضوع مفيد جدا لمن يريدون تحويل الصور
الي فيديو
|
الفكرة
فكرة هذا الموضوع تنحصر في تحويل الصورة إلي IntPtr أو الي Handle ثم يتم استخراج الصورة مرة أخري من هذا IntPtr |
الخطوات التالية
توضح كيفية تنفيذ الفكرة
|
أولا تحويل
الصورة الي رقم
يتم تعريف متغير يعبر عن أي صورة استخلاص IntPtr الخاص بتلك الصورة عن طريق استخدام الدالة Bitmap.GetHbitmap تحويل IntPtr الي رقم من النوع Int64 أو إلي Int32 |
الدالة التالية
توضح كيفية تحويل الصورة إلي رقم حيث يمكن لاحقا تخزين هذ الرقم في ملف بكل سهولة
|
Friend Function BitmapToInteger ( bmp As Bitmap ) As Integer Dim ptr As System . IntPtr = System . IntPtr . Zero Dim result As Integer = CType ( Nothing , Integer ) If bmp IsNot Nothing Then ptr = bmp . GetHbitmap () End If result = ptr . ToInt32 ' OR, you may use ' result = ptr . ToInt64 If ptr <> IntPtr . Zero Then ptr = IntPtr . Zero End If Return result End Function |
ثانيا تحويل
الرقم الي صورة
هذا الأمر يحدث باستخدام الدالة Image.FromHbitmap وهنا فقط علينا أن نمرر الرقم الذي حصلنا عليه من الخطوات أعلاه الي تلك الدالة |
الدالة التالية
توضح كيفية تحويل الرقم إلي صورة
|
Friend Function IntegerToBitmap ( value As Integer ) As Bitmap Return Bitmap . FromHbitmap ( value ) End Function |
كيفية استخدام
الكود
|
Dim bmp As Bitmap = CType ( My . Resources . ResourceManager . GetObject ( "TestingImage" ), Bitmap ) Dim bitmapInteger As Integer = BitmapToInteger ( bmp ) PictureBox1 . Image = CType ( IntegerToBitmap ( bitmapInteger ), Bitmap ) |
Comments
Post a Comment