تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
Convert Bitmap To Integer & Viceversa
#3
القيمة التي نحصل عليها هنا عبارة عن ما يسمي HBitmap و هي تمثل GDI Object و الرقم الذي يعبر عنها يقوم بالإحتفاظ بكل المعلومات عن الصورة و علي فكرة انا قمت بحفظ الصورة في ملف و استطعت استردادها من نفس الملف و بدون اي مشاكل حتي بعد أن قمت بإغلاق الكمبيوتر تم استرجاع الصوة من نفس الرقم

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

عموما الكود التالي يوضح كيف يتم حفظ الصورة في ملف و استرجاع الصورة من ملف

PHP كود :
Private Const DataFileName As String ".\data.bin"

 
   Friend Function BitmapToInteger(bmp As Bitmap) As Integer
        Dim ptr 
As System.IntPtr System.IntPtr.Zero
        Dim result 
As Integer CType(NothingInteger)
 
       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

 
   Friend Function IntegerToBitmap(value As Integer) As Bitmap
        Return Bitmap
.FromHbitmap(value)
 
   End Function

 
   Private Function WriteDataToFile(bmp As Bitmapfilename As String) As Boolean
        Dim characterEncoding 
As System.Text.Encoding CType(NothingSystem.Text.Encoding)

 
       If characterEncoding Is Nothing Then
            Dim encoder 
As System.Text.Encoding CType(System.Text.Encoding.UTF8.Clone(), System.Text.Encoding)
 
           encoder.EncoderFallback System.Text.EncoderFallback.ReplacementFallback
            characterEncoding 
encoder
        End 
If

 
       Using writer As New System.IO.BinaryWriter(System.IO.File.Open(filenameSystem.IO.FileMode.Create), characterEncoding)
 
           Dim i As Integer BitmapToInteger(bmp)
 
           writer.Write(i)

 
           Return True
        End Using
        Return False
    End 
Function

 
   Private Function ReadDataFromFile(filename As String) As Bitmap
        Dim bmp 
As Bitmap CType(NothingBitmap)
 
       If (System.IO.File.Exists(filename)) Then
            Using reader 
As New System.IO.BinaryReader(System.IO.File.Open(filenameSystem.IO.FileMode.Open), New System.Text.UTF8Encoding(FalseFalse))
 
               Dim i As Integer reader.ReadInt32
                bmp 
IntegerToBitmap(i)
 
           End Using
        End 
If
 
       Return bmp
    End 
Function 

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

PHP كود :
Dim bmp As Bitmap CType(My.Resources.ResourceManager.GetObject("TestingImage"), Bitmap)
 
       Dim bitmapInteger As Integer BitmapToInteger(bmp)

 
       PictureBox1.Image CType(IntegerToBitmap(bitmapInteger), Bitmap)
 
       If WriteDataToFile(CType(My.Resources.ResourceManager.GetObject("TestingImage"), Bitmap), DataFileNameThen
            MessageBox
.Show("Bitmap has been saved to file")
 
       Else
            MessageBox
.Show("Do Not know how to save bitmap to file")
 
       End If 

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

PHP كود :
 Me.BackgroundImage CType(ReadDataFromFile(DataFileName), Bitmap

اتمني تكتب لنا كيف قمت أنت باستخدام الكود لأنه ومن المفترض لو ان الرقم به  مشكلة سيحدث لديك بعض Exceptions

لدي سؤال لك هل قمت بحفظ الرقم في ملف أو في ملف sql او ماذا ...... أم لم تحفظ الرقم إطلاقا؟
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
Convert Bitmap To Integer & Viceversa - بواسطة silverlight - 24-03-16, 08:08 PM
RE: Convert Bitmap To Integer & Viceversa - بواسطة myalsailamy - 28-03-16, 10:20 AM
RE: Convert Bitmap To Integer & Viceversa - بواسطة silverlight - 29-03-16, 11:44 AM
RE: Convert Bitmap To Integer & Viceversa - بواسطة myalsailamy - 31-03-16, 11:28 AM
RE: Convert Bitmap To Integer & Viceversa - بواسطة silverlight - 01-04-16, 12:54 AM
RE: Convert Bitmap To Integer & Viceversa - بواسطة CLARO - 28-05-16, 02:17 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مقدمة إلي ضغط الصور ..... Zip Bitmap silverlight 0 2,598 10-05-18, 04:35 AM
آخر رد: silverlight
  Code Snippet: Convert From Ulong To Byte Array & Vice Versa silverlight 0 1,851 08-05-18, 05:15 PM
آخر رد: silverlight
  Convert structure to byteArray & viceversa silverlight 0 1,852 24-09-17, 01:51 AM
آخر رد: silverlight
  Convert Bitmap To ByteArray & ViceVersa silverlight 0 2,352 22-09-17, 03:13 PM
آخر رد: silverlight
  Convert Delegate to IntPtr & Viceversa silverlight 1 1,900 15-08-17, 04:54 PM
آخر رد: silverlight
  [VB.NET] عمل برنامج تحويل الفيديو video convert alking-0999 0 3,011 09-07-15, 12:50 PM
آخر رد: alking-0999
  معلومة ::: Integer - UInteger RaggiTech 1 1,969 06-10-12, 09:52 PM
آخر رد: RaggiTech

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


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