如何在android中将多个图像组合成单个图像?

时间:2013-03-01 06:32:10

标签: android image

我正在研究android的分布式应用程序。我已将单个图像拆分为4个部分然后进行处理。现在我想将4个位图图像组合成一个图像。我怎么能这样做?

3 个答案:

答案 0 :(得分:21)

    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 :(得分: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;
    }

答案 2 :(得分: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