Я использую compress()
метод растрового изображения, чтобы сжать мои изображения с помощью следующего кода:Метод Bitmap.Comp() в android. Качество = 100 дает в размере изображения больше, чем исходное изображение
ByteArrayOutputStream baos;
Bitmap img = BitmapFactory.decodeFile(imgs[i].getAbsolutePath());
img.compress(Bitmap.CompressFormat.JPEG, compFactor, baos);
byte[] compImgBytes;
compImgBytes = baos.toByteArray();
OutputStream out1 = new BufferedOutputStream(new FileOutputStream(
new File(dir.getString("dir", null) + File.separator +
String.valueOf(imgsName) + ".jpg")));
out1.write(compImgBytes);
проблемы, когда я использую 100 как фактор сжатия (compFactor = 100
) для этого кода размер результирующего изображения больше, чем сжатое изображение. Все, что я пытался сделать, это сжатие изображения с максимальным качеством в соответствии с документацией на Android для класса Bitmap.
Почему размер результирующего изображения превышает размер оригинального изображения? Я что-то упускаю?
Исходное изображение уже сжато, поскольку AFAIK - единственные файловые форматы, с которыми работают Android, - это сжатые (PNG, JPEG). В зависимости от формата файла и качества исходного изображения, вполне разумно, что JPEG со 100 качеством будет больше. – CommonsWare