2016-11-18 27 views
-3

在我的應用程序,用戶可以上傳一些圖片和數據庫的大小限制,我想合併這些圖像來創建只有一個形象,我這樣做,有:如何在Android中保存運行時創建的位圖?

private Bitmap combineImageIntoOne(ArrayList<Bitmap> bitmap) { 
      int w = 0, h = 0; 
      for (int i = 0; i < bitmap.size(); i++) { 
        if (i < bitmap.size() - 1) { 
          w = bitmap.get(i).getWidth() > bitmap.get(i + 1).getWidth() ? bitmap.get(i).getWidth() : bitmap.get(i + 1).getWidth(); 
        } 
        h += bitmap.get(i).getHeight(); 
      } 

      Bitmap temp = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); 
      Canvas canvas = new Canvas(temp); 
      int top = 0; 
      for (int i = 0; i < bitmap.size(); i++) { 
        Log.d("HTML", "Combine: "+i+"/"+bitmap.size()+1); 

        top = (i == 0 ? 0 : top+bitmap.get(i).getHeight()); 
        canvas.drawBitmap(bitmap.get(i), 0f, top, null); 
      } 
      return temp; 
    } 

回答

0

Bitmap.compress是你正在尋找的方法 - 它允許您將Bitmap保存到您想要的任何OutputStream

bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(someFile)); 
+0

非常感謝!但是,我在哪裏可以找到照片? –

+0

在我的例子中,它在'someFile'(它是'java.io.File') –

+0

位置由'someFile'指定,就像我剛纔所說的那樣。 –

相關問題