2016-11-18 47 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'指定,就像我刚才所说的那样。 –