2016-03-02 1 views
-1

Я новичок в android. Я хочу уменьшить размер растрового изображения до 100 КБ точно. Я получаю изображение с SD-карты, сжимаю его и снова сохраняю на SD-карте с другим именем в другой каталог. Сжатие работает отлично (3 мб, как изображение, сжато до 100 кб). Я пытаюсь сжать изображение 1mb до 100kb, но я получаю размер этого изображения 20kb. Но мне нужно, чтобы 1mb (или 2mb (или) 3mb (или) 4mb (или) 5mb .....) изображение также получило размер до 100kb. и мой код ,,Как сжать несколько изображений до определенного размера (100 КБ) в Android?

частный Bitmap getResizedBitmap (Bitmap шм, Int MaxSize) { INT ширина = bm.getWidth(); int height = bm.getHeight();

 float bitmapRatio = (float)width/(float) height; 
     if (bitmapRatio > 0) { 
      width = maxSize; 
      height = (int) (width/bitmapRatio); 
     } else { 
      height = maxSize; 
      width = (int) (height * bitmapRatio); 
     } 
     return Bitmap.createScaledBitmap(bm, width, height, true); 
    } 
+0

или вы можете использовать матрицу, если вы хотите, чтобы уменьшить разрешение – Bhargav

+0

Вышеупомянутая логика изменит размер изображения, высоту или пиксель, но я не уверен, что он может уменьшить размер рабочего стола изображения. – RAAAAM

+0

не могли бы вы выслать мне код для уменьшения размера изображения @HariRam –

ответ

0
public static Bitmap getResizedBitmap(Bitmap bm, float newHeight, float newWidth) { 

     float width = bm.getWidth(); 

     float height = bm.getHeight(); 

     float scaleWidth = (newWidth)/width; 

     float scaleHeight = (newHeight)/height; 

     // create a matrix for the manipulation 

     Matrix matrix = new Matrix(); 

     // resize the bit map 

     matrix.postScale(scaleWidth, scaleHeight); 

     // recreate the new Bitmap 

     return Bitmap.createBitmap(bm, 0, 0, (int) width, (int) height, matrix, false); 

    } 

Используя матрицу

Изменение размера растрового изображения по пиксельным разрешением возможно, но изменение размера его диска размером не насколько я знаю

+0

Iam не спрашивайте о разрешении. я спрашиваю о размере. –