안드로이드에서 대용량 이미지를 원보 그대로 보여주려면....

조회수 1803회

제목 그대로 입니다. 안드로이드 어플리케이션에서 OOM(Out Of Memory)를 내지 않고 이미지의 원본 그대로를 로딩해서 보여주려면 ndk를 사용해야 하나요?

opencv를 이용해서 할 수 있나요?

디바이스의 기본 갤러리에서는 원본 그대로를 보여주는 건가요?

혹시 opencv를 이용해서 가능하다면 예제코드나 도움이 될만한 웹페이지 좀 부탁드립니다.

1 답변

  • 대용량 이미지를 원본으로 보여주는 것은 대부분의 경우 의미가 없습니다. 특히 말씀하신 OOM 현상을 회피하기 어렵기 때문에 앱의 안정성 및 성능을 확보할 수 없습니다.

    예를 들어서 ImageView의 크기가 200x200 픽셀이고, 이곳에 보여주고 싶은 이미지가 1000x1000 픽셀이라고 했을 때, 원본을 그대로 보여주는 것이 특별한 이점을 제공하지 않는 것과 같습니다. 단지 메모리를 많이 소비한다는 것과 이에 따른 오버헤드만 증가할 뿐입니다.

    마찬가지로 디바이스의 기본 갤러리도 원본을 그대로 보여주지 않습니다. 큰 비트맵을 서브샘플링해서 더 작은 메모리로 이미지를 보여주는 방식으로 코드를 작성해야 합니다.

    관련해서는 다음 문서를 읽어보시기 바랍니다.

    참고로 opencv 라이브러리와는 상관이 없습니다. 오히려 Glide, Picasso, Fresco와 같은 라이브러리를 살펴보는게 도움이 될 것 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)