如何在安卓手机上将多张图片合并成一张图片?

15

我正在开发一个Android分布式应用程序。我已经将一张图片分成4个部分进行处理。现在我想将这四个位图图像合并成一张图片。我该如何做呢?


希望这能帮到你:http://stackoverflow.com/questions/6944061/android-merge-two-images - RAAAAM
3个回答

23
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);
}

类似这样=)


7

下面的代码片段可以帮助您将四个位图合并为一个。

调用此方法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;
    }

1
你需要创建一个位图类型的函数。也就是说,它返回位图数据类型。该函数应该有一个Bitmap数据类型的参数,这是一个数组。 在此下载演示 您将把图像作为位图数组传递给函数。这是我们合并不仅四张图片而且任何大小的图片的函数。
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;
    }

最终你完成了.. 在这里阅读更多

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接