2012-08-25 7 views
1

비교적 새로운 webP 이미지 형식으로 약간의 실험을하고 있는데, 이는 here과 같이 안드로이드 4 (ICS)에서 지원됩니다.투명도가있는 webP 이미지의 비트 맵 크기를 가져올 수 없습니까?

지금까지 그것을로드하기 전에 이미지 크기를 얻기 위해, 난 (구글 here을 보여줍니다 것과 유사) 다음 코드를 사용 : 나는 WebP 형식 이미지를 사용할 때, 그러나

final BitmapFactory.Options options=new BitmapFactory.Options(); 
options.inJustDecodeBounds=true; 
BitmapFactory.decodeStream(inputStream,null,options); 
//image size is in options.outWidth,options.outHeight 

을 그 투명성을 가지고 있기 때문에이 정보를 전혀 얻을 수없는 것으로 보입니다 (너비와 높이 모두 -1 반환).

구글이이 이미지 파일 유형을 디코딩 할 때 버그가있을 수 있습니까?

이 문제를 극복하는 방법이 있습니까?

, 단지 투명성이있는 PNG 파일을 변환을 테스트하기 위해 (같은 this 내가 사용하고 추가 약간의 투명한 픽셀을 paint.net 응용 프로그램을 통해 한 하나) (google's tool 사용) WebP 형식 형식으로, 시도는을 읽어 내가 사용한 코드와 같은 파일의 해상도.

답변

0

이 문제도 발생했습니다.

슬프게도이 bug report에 따르면 투명성이있는 WEBP에 대한 지원은 Android JB-MR2 (4.2)에서만 추가되었습니다.

그래서 안드로이드 4.0에서 4.2까지 WEBP는 알파 채널이없는 경우에만 작동합니다.

+0

webP 파일을 디코딩하고 인코딩 할 수있는 라이브러리를 알고 있습니까? 그 위대하고 안드로이드 버전 호환성에 대한 필요성을 제거합니다. –

+0

내가 아는 한 기본 경로 만 있습니다. [이 답변] (http://stackoverflow.com/a/8422707/970993)에서 설명했습니다. 하지만 inJustDecodeBounds와 같은 Bitmap 옵션은 사용할 수 없다고 생각합니다. 개인적으로 나는 어쨌든 성장 목표 인 android 4.2+에 웹 서비스를 제공하고 있습니다. 그러나 이것에 대한 지원 라이브러리는 훌륭 할 것입니다. – Joachim

+0

은 많은 작업과 같이 보이며, 전체 바이트 배열을 얻은 후에는 단순한 디코딩에만 사용됩니다. 디코딩 전에 전체 바이트 배열을로드해야하므로 효율적이지 않을 수도 있습니다. –