2013-02-28 2 views
2

는 카메라에서 찍은 JPEG 인코딩 된 바이트 배열을 감안할 때, 나는 그것을 디코딩하고 내 응용 프로그램에서의 이미지 (비트 맵)을 표시 할 필요가 디코딩 JPEG 바이트 배열을 처리합니다. 검색을 통해이 문제를 해결할 수있는 두 가지 주요 방법이 있음을 알았습니다 : use NDK Jpeg Decoding library 또는 BitmapFactory.decodeByteArray을 사용하십시오. 이것은 카메라가 내장 된 Android에서 실행되는 실험용 임베디드 장치 용입니다.더 나은 옵션은

나는 크게 전혀 가능하면하지 NDK를 SDK에서 응용 프로그램을 개발하는 것을 선호하지만, 많은 사람들이 나에게 조금 도청하는 NDK로 바로 이동하여이 문제를 처리 할 것 같았다.

  • (아마도 속도를? 호환성을?)

성능은 큰 고려하지 않는 한하지 NDK에 libjpeg 사용하여이 문제를 처리하기 위해 당신을 강제로 BitmapFactory.decodeByteArray에 내재 된 어떠한 제한이 있습니까 이미지를 디코딩하고 표시하는 데 45 초 이상 걸리면됩니다.

이 내가 선행해야하는 중요한 결정이다, 그래서 나는 어떤 사려 깊은 답변을 주시면 감사하겠습니다. 정말 고맙습니다. Displaying Bitmap Efficiently :

+0

큰 문제는 메모리 제한입니다. [문제의 샘플 포스트] (http://stackoverflow.com/questions/11820266/android-bitmapfactory-decodestream-out-of-memory-with-a-400kb-file-with-2mb-f) –

답변

2

다음은 효율적으로 NDK를 사용하지 않고 장치에서 이미지를 디코딩 할 수있는 방법은 정말 좋은 예/설명이다. 스트림이나 파일에서 비트 맵을 디코딩하여 필요에 따라 디코딩 할 수 있습니다. 하지만 내 응용 프로그램의 대부분에서 나는 같은 방법을 사용하고 있으며 위대한 일을합니다. SDK 예제를 살펴 보시기 바랍니다.

는 것입니다 당신이 도움이되기를 바랍니다.

+0

감사합니다 프롬프트 응답. 나는 항상 JPEG로 인코딩 된 바이트를 통해 이미지 데이터를 수신 할 것이므로 알려진 문제가없는 한이 방법을 사용할 것이다. 사람들이이 문제를 해결하기 위해 NDK 방법을 선택하는 것이 여전히 나에게 매우 이상하게 보일지라도 ... – l46kok

+0

스트림을 디코드하고 응용 프로그램에 표시하기 만하면 NDK를 사용할 필요가 없습니다. 정말 좋은 방법으로 Java와 Android SDK를 사용하여 이것을 달성하십시오. 내 응용 프로그램에서는 먼저 이미지의 암호를 해독하고 해독 된 스트림을 해독해야하며 문제가 발생하지 않았습니다. – hardartcore