0

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

ここに画像の説明を入力

しかし、分割されたイメージを運ぶ分割されたビットマップイメージオブジェクト(ビット)を Imageobject (i1) に割り当て、それをバイト配列に変換しようとすると、エラーが発生します。

4

1 に答える 1

0

私が気づいた例外を見る:Parameter name: encoder

だから私は何かが間違っていると思いますi1.RawFormati1 自体ではありません。おそらく、クリッピング操作か、Clone(....,Imaging.PixelFormat.DontCare)RawFormat 値が正しく設定されていないビット オブジェクトのままです。

今はテストできませんが、試してみます

Dim bit As Bitmap = OriginalBit.Clone(New RectangleF(0, 0, x, y), OriginalBit.PixelFormat) 

また

i1.Save(mem, OriginalBit.RawFormat)
于 2012-09-30T09:48:32.470 に答える