2014-09-23 2 views
0

Я застрял в этой проблеме начиная с 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); 

Я не знаю, что делать. Заранее благодарю вас за ваше время

+1

'Я хочу, чтобы сжать битовую карту (JPEG) .' ?? Растровое изображение не имеет jpeg. Что вы имеете в виду? – greenapps

+0

Извините, мое растровое изображение загружается из файла JPEG (а не из PNG) из активов (поскольку я знаю, что PNG не может быть сжат, я подумал полезно упомянуть, что источником является jpeg – Sirill

+0

Странно, что полученный размер файла будет точно соответствовать размеру исходного файла в байтах. Вы используете качество сжатия 50, и это должно уменьшить размер файла. Попробуйте с 15. – greenapps

ответ

1

Декодирование делает обратное сжатие: оно превращает его в необработанные пиксельные данные. Сжатие полезно для уменьшения размера файла для хранения и передачи, но когда изображение отображается, оно распадается в памяти до того же размера, что и при его запуске.

Если вы хотите сделать необработанные пиксельные данные меньше, вам необходимо уменьшить разрешение. Библиотека ImgScalr поможет вам здесь: она дает очень хорошие результаты.

(Но я не совсем уверен, что это вы пытаетесь достичь.)

+0

+1 для ImgScalr Здесь приведена ссылка на последнюю версию (4.2) в репозитории maven: http://search.maven.org/#artifactdetails%7Corg.imgscalr%7Cimgscalr-lib%7C4.2%7Cjar –

Смежные вопросы