2012-09-30 6 views
0

이미지를 바이트 배열로 변환하려고하면 Null 예외가 발생합니다. 나는 4 등분으로 이미지를 분할하고 각 부분을 Byte Array로 변환 중이다.이미지를 바이트 배열로 변환하면 null 예외가 발생합니다.

enter image description here

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)로 분할 에드 이미지를 가지고 분할 테드 Bitmapimage 객체 (비트)를 할당하고 바이트 배열로 변환 할 때 그것은 나에게 오류를 제공합니다.

+0

과 함께 노력할 것입니다, 그것은 아마 널 (VB.net의 경우 Nothing) – codingbiz

+0

@codingbiz 그렇습니다.하지만 이유는 무엇입니까. 비트 맵 개체를 i1에 할당하고 있습니다. – maddygoround

+0

아마도 대답은'i4 = bit' 줄 앞에있는 코드에 있지만이 코드는 게시물에 보이지 않습니다. – Steve

답변

0

예외를 살펴보면 다음과 같습니다. Parameter name: encoder.

그래서 나는에서 뭔가 잘못되었다고 생각합니다. 아마도 클리핑 연산 또는 Clone(....,Imaging.PixelFormat.DontCare)은 RawFormat 값을 올바르게 설정하지 않고 비트 객체를 그대로 둡니다.

지금 테스트 할 수 없습니다,하지만 난 i1``에 마우스 커서를 올려

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

또는

i1.Save(mem, OriginalBit.RawFormat) 
+0

나는 그것을 시도했지만 여전히 줄 수 있습니다. 같은 오류 – maddygoround

+0

하지만 'i1'이 null이 아님을 확인할 수 있습니까? – Steve

관련 문제