15

I am working on a distributed application of android.I have splitted a single image into lets say 4 parts and then processed it. Now I want to combine 4 bitmap images into a single image. How can i do that?

4

3 に答える 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);
}

このようなもの=)

于 2013-03-01T06:54:47.577 に答える
7

次のコードは、4 つのビットマップを 1 つに結合するトリックを実行します。このメソッドを 3 回呼び出して、4 つの画像を結合します。

ステップ 1: 最初の 2 つの画像を結合する

ステップ 2:名前を変更した 2 つの画像を結合する

ステップ 3: 2 つの新しく作成されたビットマップを組み合わせる

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;
    }
于 2013-03-01T06:55:05.903 に答える
1

ビットマップ型の関数を作成する必要があります。つまり、ビットマップ データ型を返します。関数には、配列であるデータ型 Bitmap の引数が必要です。

デモのダウンロードはこちら

画像をビットマップの配列として関数に渡します。これは、4 つの画像だけでなく、任意のサイズの画像を結合する機能です。

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

最後に、あなたは完了です..詳細はこちら

于 2016-12-19T12:42:09.563 に答える