Ваш код только инициализирует параметры растрового изображения для работы с decodedStream (входным изображением или файлом, с которым вы будете работать), после этого задаете правило, которое говорит, что требуемый размер должен быть> = 200 ширина и высота, и после этогопросто создавая окончательное растровое изображение с требуемым выходным потоком
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true;
BitmapFactory.decodeStream(new FileInputStream(f), null, o);
final int REQUIRED_SIZE = 200;
int scale = 1;
while (o.outWidth / scale / 2 >= REQUIRED_SIZE
&& o.outHeight / scale / 2 >= REQUIRED_SIZE)
scale *= 2;
BitmapFactory.Options o2 = new BitmapFactory.Options();
o2.inSampleSize = scale;
Bitmap bit1 = BitmapFactory.decodeStream(new FileInputStream(f),
null, o2);
bit1.compress(Bitmap.CompressFormat.PNG, 100, out); //you can use this line and play with the value 100 in order to set quality of the image when its compresed
Поскольку ваше изображение масштабируется до определенного размера (который> = 200 ширина и высота), размер выходного изображения будет зависеть от входного растрового изображениясначала
, если вы хотите проверить размеры растрового изображения, вы можете сделать это
Log.e("Dimensions", bit1.getWidth()+" "+bit1.getHeight());
Bitmap.compress
сжатие (формат Bitmap.CompressFormat, качество int, поток OutputStream) Записать сжатую версию растрового изображения в указанный выходной поток.
РЕДАКТИРОВАТЬ: Как Владислав Матвиенко предлагает вам увеличить значение REQUIRED_SIZE до большего значения,так как, как я написал выше, вы сначала устанавливаете фиксированный размер