이미지 크기를 조정하지 않고 카메라로 찍은 사진을 압축하려고합니다.Bitmap.compress - 작동하지 않습니다.
bitmap.compress를 사용해 보았지만 제대로 작동하지 않았습니다. 그냥 리소스에서로드 된 있지만 여전히 성공 비트 맵 압축 시도했는지 확인하려면.
어떤 아이디어가 있습니까?
예제 코드 :
//load bitmap from resources:
bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.trolltunga);
Log.d("roee", "onImageCaptured: before compress = " + bitmap.getByteCount() + ", " + bitmap.getWidth() + ", " + bitmap.getHeight());
//compressing
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, bos);
Bitmap comp = BitmapFactory.decodeStream(new ByteArrayInputStream(bos.toByteArray()));
Log.d("roee", "onImageCaptured: after compress = " + comp.getByteCount() + ", " + comp.getWidth() + ", " + comp.getHeight());
로그 결과 :
D/roee: onImageCaptured: before compress = 10800000, 3000, 900
D/roee: onImageCaptured: after compress = 10800000, 3000, 900
'비트 맵'은 절대 압축되지 않습니다. 코드가 예상대로 작동합니다. 비트 맵 * 파일 *은'PNG' 나'JPEG'와 같은 압축 파일 형식을 사용하여'compress() '할 때 압축됩니다. 기술적으로'ByteArrayOutputStream'은 압축되어 있습니다. – CommonsWare