2013-03-01 53 views
7

我正在android.de的分布式应用程序工作,我已经分割成一个单一的图像,让说4部分,然后处理它。现在我想将4个位图图像组合成一个图像。我怎样才能做到这一点?如何在Android中将多个图像组合成单个图像?

+0

http://stackoverflow.com/questions/6944061/android-merge-two-images希望这将有助于你[叠加两个图像 – RAAAAM 2013-03-01 06:52:08

+0

可能的复制[android]设置一个imageview](http://stackoverflow.com/questions/2739971/overlay-two-images-in-android-to-set-an-imageview) – GSerg 2016-04-09 16:47:42

回答

17
Bitmap[] parts = new Bitmap[4]; 
    Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(result); 
    Paint paint = new Paint(); 
    for (int i = 0; i < parts.length; i++) { 
     canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i/2), paint); 
    } 

像这样的事情=)

+1

检查此演示可能会帮助您实现合并几个问题图像形成一个单一的图像http://whats-online.info/science-and-tutorials/92/how-to-combine-multiple-images-into-a-single-image-in-android/ – 2016-12-19 12:43:15

6

下面的代码段会做的伎俩,为您四位一体的位图结合起来。 调用此方法3次以合并四个图像。

第1步:结合前两个图像

第2步:合并更名两个图像

第3步:将两个新创建位图

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) { 
     Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig()); 
     Canvas canvas = new Canvas(bmOverlay); 
     canvas.drawBitmap(bmp1, new Matrix(), null); 
     canvas.drawBitmap(bmp2, 0, 0, null); 
     return bmOverlay; 
    } 
0

你需要创建一个功能位图类型。也就是说,它返回一个位图数据类型。该函数应该有一个数组类型Bitmap的参数,它是一个数组。

Download demo here

你会把你的图像到功能位的阵列。这是我们的功能,不仅合并四个图像,而且还合并任意大小的图像。

private Bitmap mergeMultiple(Bitmap[] parts){ 

    Bitmap result = Bitmap.createBitmap(parts[0].getWidth() * 2, parts[0].getHeight() * 2, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(result); 
    Paint paint = new Paint(); 
    for (int i = 0; i < parts.length; i++) { 
     canvas.drawBitmap(parts[i], parts[i].getWidth() * (i % 2), parts[i].getHeight() * (i/2), paint); 
    } 
     return result; 
    } 

最后你做.. Read more here

相关问题