2016-03-02 88 views
-1

我是android新手。我想要精確地將位圖的大小減小到100kb。我從SD卡上獲取一張圖片,將其壓縮並以不同的名稱再次保存到SD卡中,然後保存到不同的目錄中。壓縮工作正常(3 MB像圖像被壓縮到100 kb左右)。我試圖將1MB圖像壓縮到100kb,但是我得到的圖像大小是20kb。但我需要1MB(或2MB(或)3MB(或)4MB(或)5MB .....)圖像也可以調整大小爲100kb。並且我的代碼是,,如何在android中將多個圖像大小壓縮爲特定大小(100kb)?

private Bitmap getResizedBitmap(Bitmap bm,int maxSize) int width = 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不問關於解決方案。 iam問大小。 –