Я застрял в этой проблеме начиная с 2 дней: Я хочу сжать растровое изображение (JPEG).JPEG сжимать тот же размер, что и оригинал
Я нашел полезную информацию здесь и в Google, но никто не работает нормально.
Мой файл JPEG находится в активах. Я могу прочитать его без проблем, получить всю информацию. Когда я сжимаю его, мой байт [] массив в порядке, но с decodeByteArray размер такой же, как у оригинала.
Здесь Кодекс
InputStream in = assets.open(fileName);
Config config = Bitmap.Config.RGB_565;
Options options = new Options();
options.inPreferredConfig = config;
Bitmap bitmap = BitmapFactory.decodeStream(in, null, options);
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, out);
bitmap = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()),null,options);
Я не знаю, что делать. Заранее благодарю вас за ваше время
'Я хочу, чтобы сжать битовую карту (JPEG) .' ?? Растровое изображение не имеет jpeg. Что вы имеете в виду? – greenapps
Извините, мое растровое изображение загружается из файла JPEG (а не из PNG) из активов (поскольку я знаю, что PNG не может быть сжат, я подумал полезно упомянуть, что источником является jpeg – Sirill
Странно, что полученный размер файла будет точно соответствовать размеру исходного файла в байтах. Вы используете качество сжатия 50, и это должно уменьшить размер файла. Попробуйте с 15. – greenapps