Подскажите как более качественно сжать изображение, сейчас имею такой код и такие результаты:
//путь к изображению
fullPictureObj.get(0).getPath();
File decodeFile = new File(fullPictureObj.get(0).getPath());
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmapFull = BitmapFactory.decodeFile(fullPictureObj.get(0).getPath(), options);
int imageHeight = options.outHeight;
int imageWidth = options.outWidth;
//Ориентация изображения
Bitmap rotateBitmap = rotateBitmap(bitmapFull,
fullPictureObj.get(0).getRealOrientation());
bitmapFull.recycle();
int newWidth = 960;
float k = (float) imageWidth/ (float) newWidth;
float newHeightFloat = ((float) imageHeight/k);
int newHeight = (int) newHeightFloat;
/*
int maxSize = 960;
if(imageWidth > imageHeight){
newWidth = maxSize;
newHeight = (imageHeight * maxSize) / imageWidth;
} else {
newHeight = maxSize;
newWidth = (imageWidth * maxSize) / imageHeight;
}
*/
Bitmap bitmapMini = Bitmap.createScaledBitmap(rotateBitmap, newWidth, newHeight, false);
// rotateBitmap.recycle();
//Сохраняю изображения для сравнения и теста
MediaStore.Images.Media.insertImage(getContext().getContentResolver(),
bitmapMini, "test" , null);
Оригинал: 4608 X 3456 4.78МБ
Результат: 960 X 720 60.6КБ
При сжатие вес не критичен, но результат должен не превышать ширину 1000px
Оригинал:
https://pp.userapi.com/c846018/v846018037/e0d60/r9... (не совсем оригинал)
Результат:
https://pp.userapi.com/c846018/v846018037/e0d69/Hx...
Как более качественно уменьшить ширину и высоту изображения? Как видно из примера, результат мягко говоря не очень