![]() |
|
Convert Bitmap To Integer & Viceversa - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم مقالات VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=184) +--- الموضوع : Convert Bitmap To Integer & Viceversa (/showthread.php?tid=15217) |
Convert Bitmap To Integer & Viceversa - silverlight - 24-03-16 السلام عليكم ورحمة الله وبركاته هناك أساليب كثيرة لتخزين الصورة في ملف أو لتخزين الصورة في قواعد البيانات و أحد هذا الأساليب هو تخزين الصورة علي هيئة مصفوفة من البايت ثم استرجاعها عن طريق تحويل مصفوفة البايت الي صورة لكن هل فكرت يوما في تخزين الصورة علي هيئة رقم ثم ومن هذا الرقم يتم استرجاع الصورة في هذا الموضوع سيتم توضيح كيفية تحويل الصورة الي رقم حيث يمكن وبكل سهولة تخزين الرقم في ملف عادي او في ملف قواعد البيانات الخاصة بك ثم و عندما تريد إظهار الصورة مرة أخري تقوم بتحويل الرقم الذي تم تخزينه الي صورة مرة أخري أهم مميزات الفكرة هذه هي أنك تستطيع أن تخزن الصور بدون استهلاك اي مساحة علي الهارد ديسك او استهلاك مساحة في ملف الداتا بيز أيضا هذا الموضوع مفيد جدا لمن يريدون تحويل الصور الي فيديو الفكرة فكرة هذا الموضوع تنحصر في تحويل الصورة الي IntPtr أو الي Handle ثم يتم استخراج الصورة مرة أخري من هذا IntPtr الخطوات التالية توضح كيفية تنفيذ الفكرة أولا تحويل الصورة الي رقم 1- يتم تعريف متغير يعبر عن أي صورة 2- استخلاص IntPtr الخاص بتلك الصورة عن طريق استخدام الدالة Bitmap.GetHbitmap 3- تحويل IntPtr الي رقم من النوع Int64 أو إلي Int32 [b] الدالة التالية توضح كيفية تحويل الصورة إلي رقم حيث يمكن لاحقا تخزين هذ الرقم في ملف بكل سهولة[/b] PHP كود : Friend Function BitmapToInteger(bmp As Bitmap) As Integerثانيا تحويل الرقم الي صورة هذا الأمر يحدث باستخدام الدالة Image.FromHbitmap وهنا فقط علينا أن نمرر الرقم الذي حصلنا عليه من الخطوات أعلاه الي تلك الدالة الدالة التالية توضح كيفية تحويل الرقم إلي صورة PHP كود : Friend Function IntegerToBitmap(value As Integer) As Bitmapكيفية استخدام الكود PHP كود : Dim bmp As Bitmap = CType(My.Resources.ResourceManager.GetObject("TestingImage"), Bitmap)أتمني ان الموضوع يكون مفيدا لكم تقبلو تحياتي RE: Convert Bitmap To Integer & Viceversa - myalsailamy - 28-03-16 شكرا على مشاركة الكود ،، دائما تجعلني ابحث بمواضيع جديده اخ silverlight على العموم عند تطبيق فكرتك فانها تعمل بكل كفاءه و لكن عند حفظ الرقم و اغلاق البرنامج و تشغيله مره اخرى لا أستطيع الاستفاده من الرقم بشيء و كانه فقط كان يشير الى موقع بذاكرة الجهاز و بمجرد اغلاق و فتح البرنامج مره اخرى و محاولة استرجاع الصورة مره اخرى لا تظهر ،، في الحقيقه بحثت قليلا عن الدوال التي استخدمتها وكانها فقط مؤشرات .. على العموم مبادرة جميله و اتمنى ان اكون فقط انا الغلطان لانها لو كانت صحيحه فهي مناسبه لي كثيراً ، RE: Convert Bitmap To Integer & Viceversa - silverlight - 29-03-16 القيمة التي نحصل عليها هنا عبارة عن ما يسمي HBitmap و هي تمثل GDI Object و الرقم الذي يعبر عنها يقوم بالإحتفاظ بكل المعلومات عن الصورة و علي فكرة انا قمت بحفظ الصورة في ملف و استطعت استردادها من نفس الملف و بدون اي مشاكل حتي بعد أن قمت بإغلاق الكمبيوتر تم استرجاع الصوة من نفس الرقم عموما لو ان الكود لا يعمل معك جيدا انا لدي كود اخر يقوم بتحوبل الصورة الي بايت وذلك باستخدام LockBytes and UnLockBytes و يتم استرجاع الصورة بنفس الأسلوب و هذا الكود يعتبر من أسرع طرق حفظ الصورة علي الإطلاق و لاحقا سأضع لك الكود هذا عموما الكود التالي يوضح كيف يتم حفظ الصورة في ملف و استرجاع الصورة من ملف PHP كود : Private Const DataFileName As String = ".\data.bin"و الكود التالي يوضح كيف يتم استخدام الكود اعلاه لحفظ الصورة وهنا انا قمت بتعريف صورة موجودة في Resources المشروع ثم وباستخدام الأكواد اعلاه قمت بتجويل الصورة الي رقم ثم قمت بحفظها في ملف ومكان هذا الملف هو فهرس المشروع و يمكن ان تغير مكان حفظ الملف كيفما شئت وأيضا قمت بعرض الصورة في PictureBox بعد استرداد الصورة من الرقم و هذا للتوضيح فقط PHP كود : Dim bmp As Bitmap = CType(My.Resources.ResourceManager.GetObject("TestingImage"), Bitmap)و الكود التالي يوضح كيف قمت انا باسترداد الصورة من الملف و جعلتها كخلفية للفورم مثلا PHP كود : Me.BackgroundImage = CType(ReadDataFromFile(DataFileName), Bitmap) اتمني تكتب لنا كيف قمت أنت باستخدام الكود لأنه ومن المفترض لو ان الرقم به مشكلة سيحدث لديك بعض Exceptions لدي سؤال لك هل قمت بحفظ الرقم في ملف أو في ملف sql او ماذا ...... أم لم تحفظ الرقم إطلاقا؟ RE: Convert Bitmap To Integer & Viceversa - myalsailamy - 31-03-16 شكرا لك على الرد // و لكن تم التجربه مره اخرى و نفس النتيجة بالنسبه لي ،، لا اعلم عن باقي الاعضاء هل يحصل معي ام للكل ،، على العموم اخي الفاضل قمت بالخطوات كما تفضلت ،، و لكن خذ بالاعتبار بان الكود يعمل بشكل جيد خلال فترة تشغيل البرنامج بمجرد اغلاقي للبرنامج و استخدام الكود مره اخرى فانه لا يعمل قم بالضغط على Button1 و الى الان يعمل بعدها قم باغلاق البرنامج و تشغيله مره اخرى و اضغط على الزر button2 و الذي من المفترض ان يجلب الصورة مباشرة ،، هنا يظهر خطأ ما لاع اعلم ما سببه كود : Public Class Form1RE: Convert Bitmap To Integer & Viceversa - silverlight - 01-04-16 الأخ محمد يحي شكرا جزيلا لردك فدائما الهدف من المناقشات مفيد لتوضيح الأمور وبعد قراءة الكود الخاص بك الأن انا تفهمت سبب المشكلة في الكود الخاص بي ستجد أن الرقم الذي يشير الي الصورة هو في الأصل عبارة عن Pointer يشير مباشرة الي الصورة الموجودة في Resources لكن في الكود الخاص بك الأمر يختلف قليلا فهنا انت تتعامل مع ملف علي الجهاز و بالتالي تحتاج الي الحصول عليPointer يشير الي هذا الملف الخلاصة و ما يهمني توضيحه هنا هو أنه يوجد فارق كبير بين تخزين الصورة في ملف و بين قراءة الصورة و تخزينها بهذا الاسلوب لكن ولتخزين و حفظ الصورة بشكل فعلي ليراه المستخدم كصورة فهنا عليك ان تقوم بتحويلها الي بايت و العكس صحيح RE: Convert Bitmap To Integer & Viceversa - CLARO - 28-05-16 مشكووووووووووووووووووووووووووووووووورر |