마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

파일 비트맵 변환시 null 뜨는 이유?

0 추천

안녕하세요.

제목에서 처럼 파일 객체를 비트맵으로 변환하려하는데 BitmapFactory.decodeFile함수가 널을 뱉어요.

case OKGlobalProperties.CAMERA_REQUEST_TYPE_PHOTO_GALLERY :
   List<Uri> uriList = data.getParcelableArrayListExtra("uris");
   for (int i = 0; i < uriList.size(); i++) {
      File f = new File(uriList.get(i).toString().replaceAll("^file\\:\\/\\/", ""));
      Bitmap bitmap1 = BitmapFactory.decodeFile(f.getAbsolutePath());
      Log.e("bitmap1", bitmap1.toString());
      BitmapFactory.Options options = new BitmapFactory.Options();
      options.inJustDecodeBounds = true;
      Bitmap bitmap2 = BitmapFactory.decodeFile(f.getAbsolutePath(), options);
      Log.e("bitmap1", bitmap2.toString());

위와같은데요

uriLst는 file://로 구성된 사용자가 앨범에서 선택한 Uri 값들이구요.

여기서 file:// 잘라서 파일 f로 객체를 만듭니다.

 

문제는 이 파일 경로를 바탕으로 Bitmap을 얻어보려고 BitmapFactory.decodeFile()함수를 사용했는데,

단순히 패스만을 전달하는 bitmap1은 생성이 되지만, options를 넣어 사용한 bitmap2는 생성이 되질 않고 null을 리턴하는 문제가 있습니다.

 

해당 상황에 대해 알고계신게 있으시다면 조언부탁드립니다. (__)

겸군님 (1,900 포인트) 님이 2019년 8월 1일 질문

1개의 답변

0 추천
 
채택된 답변

구글doc에 보면 bitmap 이 null이 되는 경우는 아래와 같이 설명 되어 있습니다.

  The decoded bitmap, or null if the image data could not be decoded, or, if opts is non-null, if opts requested only the size be returned (in opts.outWidth and opts.outHeight) 

아래 링크를 참조 해서 구한 옵션으로 재인코딩하세요.

https://itmining.tistory.com/17 

익명사용자 님이 2019년 8월 1일 답변
겸군님님이 2019년 8월 5일 채택됨
와 참고가 잘됐습니다 감사합니다 :)
...