2016-07-13 4 views
0

이진 데이터가있는 .txt 파일이 있습니다.이 데이터를 바이트 배열에 넣고이 배열의 이미지를 표시하려고합니다. 필자는이 코드를 사용하여, 나는비트 맵을 사용하여 바이트 배열에서 이미지 표시

FileInputStream inputStream; 
OutputStream out = null; 

int bytesRead=0; 
try{ 
    inputStream = new FileInputStream(file4.getPath()); 
    byte[] result = new byte[320*256*2]; 
    bytesRead = inputStream.read(result); 
    Bitmap bmp = BitmapFactory.decodeByteArray(result, 0, result.length); 

    ImageView image = (ImageView) findViewById(R.id.imageDisplay); 

    image.setImageBitmap(bmp); 



} catch (FileNotFoundException ex) { 
    ex.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 

}

컴파일에서도 실행에 오류가없는 ... 거기에 실수가 있지만 임없는 전문가 그래서 비트 맵 알고있는,하지만 난 클릭하면 버튼 이미지를 표시하기에 나는이 있습니다

SkImageDecoder::Factory returned null이 도움을 주셔서 감사합니다 코드에서이 변경을 할

+0

'이진 데이터가있는 .txt 파일이 있습니다.' 그것을 위해 .txt 파일을 남용하지 마십시오. 모두는 일반 텍스트 만 기대합니다. – greenapps

+0

이 바이너리 데이터가 어떻게 인코딩되는지 알 수 있습니다. 또는 youdid가 어떻게 입력했는지 보여줄 수 있습니다. – greenapps

+0

'SkImageDecoder :: Factory returned null'. 코드에는 SkImageDecoder가 없습니다. BitmapFactory 만 있습니다. 그래서 요점을 지키십시오. – greenapps

답변

0

시도

Bitmap bmp = BitmapFactory.decodeByteArray(result, 0, bytesRead); 
+0

답변 해 주셔서 감사합니다. 그러나 문제는 여전히 동일합니다. – Bob

+0

'inputStream'이 올바르게 열렸거나 null입니까? 매니페스트에서 읽기 파일 권한을 설정 했습니까? '' – ddb

+0

권한을 추가했는지 확인하십시오. 또한 file4의 크기를 확인하고 버퍼 길이보다 작은 지 확인하십시오. 이미지의 크기가 320x256 인 것으로 생각한다면 할당 할 부분이 무엇인지, 예를 들어 JPEG로 인코딩 된 이미지 스트림의 크기는 이미지의 실제 픽셀 수와 상당히 밀접한 관계가 있음을 명심하십시오. –

관련 문제