안드로이드 개발 질문/답변
(글 수 45,052)
BitmapFactory 클래스에서 decodeFileDescriptor() 메서드를 이용하여 비트맵을 만드는 과정중에
이미지가 깨지는 현상이 있습니다.
혹시, decodeFileDescriptor() 메서드에 관해 아시는분 조언 부탁드립니다.
참고로 decodeFileDescriptor() 메서드가 내부적으로 JNI를 사용하더라구요..ㅡㅡ;;
이미지가 깨지는 현상이 있습니다.
혹시, decodeFileDescriptor() 메서드에 관해 아시는분 조언 부탁드립니다.
참고로 decodeFileDescriptor() 메서드가 내부적으로 JNI를 사용하더라구요..ㅡㅡ;;
2009.08.07 23:51:53
단순히 생각해서 이미지 파일에 문제가 있다고 생각할 수 있습니다. PC등에서 제대로 보이더라도 파일이 잘못생성되어있는 경우가 있을 수 있다는 것입니다. 내부에서 JNI를 사용하는 것은 맞습니다. 디코딩하는 과정은 복잡하고 성능을 요하는 과정으로 SGL등에서 처리할 수 있도록 전달되며 다시 SGL에서는 하드웨어 혹은 소프트웨어 이미지 디코더로 전달하게 됩니다. 내부에서 어떤 이미지 디코더를 사용하게 될지는 단말마다 틀려질 수 있는 부분입니다.
2009.08.09 09:18:55
이미지 깨지는 발생 루트는 이렇게 됩니다.(애뮬에서는 안되구요. 시료에서 테스트해야합니다.)
1. 메모리카드에 앨범이미지가 있는 mp3 파일을 넣는다.
2 . Music(컵케익 오픈소스) 애플을 실행
3. 앨범브라우저를 선택
4. 앨범썸네일이미지가 다 나타나기전에 스크롤링을해서 아래위로 마구 이동
5. 앨범썸네일이미지가 깨지는 현상이 나타남(무조건 나타나는현상은 아니구요...자주 나타납니다..)
스크롤링중 이미지를 디코딩해서 비트맵으로 만드는 과정에서 이미지 꺠지는 현상이 발생합니다..
이미지 디코딩 하는 과정을 쓰레드로도 돌려보았으나. 그래도 이미지가 깨지더라구요..
스크롤링이 문제인것으로 잠정 결론이 났습니다..
1. 메모리카드에 앨범이미지가 있는 mp3 파일을 넣는다.
2 . Music(컵케익 오픈소스) 애플을 실행
3. 앨범브라우저를 선택
4. 앨범썸네일이미지가 다 나타나기전에 스크롤링을해서 아래위로 마구 이동
5. 앨범썸네일이미지가 깨지는 현상이 나타남(무조건 나타나는현상은 아니구요...자주 나타납니다..)
스크롤링중 이미지를 디코딩해서 비트맵으로 만드는 과정에서 이미지 꺠지는 현상이 발생합니다..
이미지 디코딩 하는 과정을 쓰레드로도 돌려보았으나. 그래도 이미지가 깨지더라구요..
스크롤링이 문제인것으로 잠정 결론이 났습니다..
2009.08.09 09:48:40
테스트 하신 것이 어떤 단말인지 모르지만 에뮬에서 발생하지 않고 단말에서만 발생하는 현상이라면 2D 그래픽 엔진과 이미지 디코딩엔진이 충돌이 나는 것으로 보입니다. 에뮬은 둘 다 SW디코더를 쓰니 특별히 충돌날 이유는 없고, 단말은 HW 이미지 디코더 사용에 있어서 2D렌더링 부분과 멀티태스킹상에서 충돌이 나서 동시처리주는 경우가 있을것 같네요. MSM7201이 아닌 다른 칩셋을 쓰신다면 G1등 출시된 단말에서도 동일 문제가 발생하는지 확인해보시구요. 타 단말에서 발생하지 않는다면 그래픽 드라이버 쪽에 버그 레포팅을 하셔야할듯 합니다. 7201을 쓰시고 다른 단말에서도 동일한 문제 발생한다면 그냥 그러려니 하고 넘어가는 것도 좋을듯 합니다.