Я пытаюсь сжать фотографию, которую я взял с камерой, не уменьшая размер изображения.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» (и, технически, ваш «ByteArrayOutputStream» сжимается, а не то, что он вам очень нравится). – CommonsWare