イメージサイズを拡大することなく、カメラで撮影した画像を圧縮しようとしています。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
'Bitmap'は決して圧縮されません。あなたのコードは期待どおりに動作しています。ビットマップ*ファイル*は、 'PNG'や' JPEG'のような圧縮ファイル形式を使って 'compress()'すると圧縮されます(技術的には 'ByteArrayOutputStream'は圧縮されています。 – CommonsWare