当我尝试将Image转换为Byte Array时,它会给我Null Exception。我将图像分成4个相等的部分,然后将每个部分转换为字节数组。
OpenFileDialog1.ShowDialog()
i = Image.FromFile(OpenFileDialog1.FileName)
Dim g As Graphics
Dim OriginalBit As New Bitmap(i)
Dim x1 = 0, y1 = 0, x, y, k As Integer
x = i.Width / 2
y = i.Height / 2
Dim i1, i2, i3, i4 As Image
Dim bit As Bitmap = OriginalBit.Clone(New RectangleF(0, 0, x, y), Imaging.PixelFormat.DontCare)
PictureBox2.Width = bit.Width
PictureBox2.Height = bit.Height
i1 = bit
但是当我将Split-ted Bitmapimage对象(位)分配给Imageobject(i1)并尝试将其转换为Byte Array时,它会给我带来错误。
答案 0 :(得分:0)
查看我注意到的异常:Parameter name: encoder
。
所以我认为i1.RawFormat
中的某些内容是错误的,而不是i1本身。
剪切操作或Clone(....,Imaging.PixelFormat.DontCare)
可能会在没有正确设置RawFormat值的情况下保留位对象。
我现在无法测试,但我会尝试
Dim bit As Bitmap = OriginalBit.Clone(New RectangleF(0, 0, x, y), OriginalBit.PixelFormat)
或
i1.Save(mem, OriginalBit.RawFormat)