2013-08-22 1 views
1

JPEG 형식의 이미지는 투명도를 지원하지 않습니다. Reference.JPEG 이미지를 ARGB_8888로로드 할 때 알파 채널이 사용됩니까?

ARGB_8888은 Android에서 이미지를로드하기위한 기본 형식입니다. Reference.

JPEG 이미지를 ARGB_8888으로로드하면 알파 채널의 8 비트가 모든 픽셀에서 사용되지 않습니까?

메모리를 잃지 않으려면 RGB_888으로로드해야합니다. 맞습니까? 그러나 그러한 Bitmap.Config은 존재하지 않습니다. 왜?

거대한 JPEG 이미지에 적합합니다. 좀 더 느린 처리는 괜찮습니다. 기억은 나에게 중요합니다. RGB_888 옵션이 없기 때문에 단지 25 %의 메모리를 잃는 것이 더 낫습니다.

답변

0

이 질문에 대한 답은 현재 상황에 따라 크게 달라질 수 있습니다. ARGB_8888을 사용하지 못하게하는 메모리 문제 나 공간 또는 대역폭이 있습니까? 그렇지 않다면 사용하십시오. 설명서에 따르면

,

는 가급적 사용한다.

편집

RGB_888은 기본 Bitmap.Config 옵션이 아니라 4 ARGB_8888로, 당신은에 따라 결정을 내리기로 되돌아가는 겁니다 비해 2 바이트를 사용하는 것입니다 RGB_565 때문에 상황.

필요한 처리 능력에 이미지 품질과 사용 된 메모리를 떨어 뜨릴 의향이 있습니까?

+1

제 질문에 대한 답을 다시 말했습니다. 그냥 물어 보는거야, 그냥 바보 같은 기억을 잃지 않는거야? 나는'ARGB_8888'을 사용해야하는지, 어떤 유스 케이스에 대해서 묻지 않는다. –

+0

@AdamStelmaszczyk이 내 대답을 편집했다. – slybloty

+0

기본 옵션은 'ARGB_8888'입니다. [참고.] (http://developer.android.com/reference/android/graphics/BitmapFactory.Options.html#inPreferredConfig) 메모리 처리 능력을 떨어 뜨릴 용의가 있습니다. 이미지 품질을 떨어 뜨릴 용의가 없습니다. –

0

내부적으로 렌더러는 이미지 작업을 수행 할 때 4 채널 이미지를 사용하도록 설계 할 수 있습니다. 3 채널 이미지를 업로드하면 메모리를 절약 할 수 있지만 특별한 작업이 필요할 수도 있습니다. GPU 가속 그래픽의 경우 이것은 더 큰 문제 일 수 있습니다 (GPU 드라이버는 아마 가짜 알파 채널을 생성합니다).

관련 문제