Jump to content
Xtreme .Net Talk

2 diff blob format reading error


Recommended Posts

Posted

I have 2 diff. image format stored in db2 database as blob one start with 0000000C6A5020200D0A87 which cannot be displayed in picture box I get error invalid parameters and the other start with FFD8FFE000104A4649460 with no problem.

 

So, I tried more than 1 solution till I finally succeeded to display both of them as in the below code

 

But I got both as in Pic. How can I display both Pic. In the right format?

 

 

 

 

 

Solution1

 

 

OleDbDataAdapter1.Fill(DataSet11, "PORT_IMAGE")

 

Dim c As Integer = DataSet11.Tables("PORT_IMAGE").Rows.Count

 

If c > 0 Then

 

 

Dim output = New Bitmap(Width, Height)

 

Dim ImageBytes() As Byte = DataSet11.Tables("PORT_IMAGE").Rows(c - 1)("P_IMAGE")

 

Dim bitmap As New Bitmap(Width, Height, PixelFormat.Format64bppArgb)

 

Dim bitmap_data = bitmap.LockBits(New Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.WriteOnly, PixelFormat.Format64bppArgb)

 

Marshal.Copy(ImageBytes, 0, bitmap_data.Scan0, ImageBytes.Length)

 

Dim i As Integer = 0

 

Do While (i < ImageBytes.Length)

 

Dim R As Byte = ImageBytes(i)

 

Dim G As Byte = ImageBytes((i + 1))

 

Dim B As Byte = ImageBytes((i + 2))

 

Dim A As Byte = ImageBytes((i + 3))

 

ImageBytes(i) = B

 

ImageBytes((i + 1)) = G

 

ImageBytes((i + 2)) = R

 

ImageBytes((i + 3)) = A

 

i = (i + 4)

 

Loop

 

bitmap.UnlockBits(bitmap_data)

 

Dim imge = CType(bitmap, Image)

 

PictureBox1.Image = imge

 

PictureBox1.Refresh()

 

'Format32bppArgb

 

 

 

 

 

Solution 2

 

Dim output = New Bitmap(Width, Height)

 

Dim rect = New Rectangle(0, 0, Width, Height)

 

Dim bmpData = output.LockBits(rect, ImageLockMode.ReadWrite, output.PixelFormat)

 

Dim ptr = bmpData.Scan0

 

Marshal.Copy(b, 0, ptr, b.Length)

 

output.UnlockBits(bmpData)

 

PictureBox1.Image = output

 

 

 

 

Solution3

 

Dim buffer() As Byte = DataSet11.Tables("PORT_IMAGE").Rows(c - 1)("P_IMAGE")

 

Dim bitmap As New Bitmap(Width, Height, PixelFormat.Format32bppRgb)

 

Dim bitmap_data = bitmap.LockBits(New Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.WriteOnly, PixelFormat.Format32bppRgb)

 

Marshal.Copy(buffer, 0, bitmap_data.Scan0, buffer.Length)

 

bitmap.UnlockBits(bitmap_data)

 

Dim imge = CType(bitmap, Image)

 

PictureBox1.Image = imge

 

Continue reading...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...