2013-03-01 4 views
7

私はアンドロイドの分散アプリケーションに取り組んでいます.1つのイメージを4つの部分に分割して処理しました。ここでは、4つのビットマップ画像を1つの画像に結合したいと考えています。どうやってやるの?コードの一部に続い複数の画像をアンドロイドで1つの画像に結合するにはどうすればよいですか?

+0

http://stackoverflow.com/questions/6944061/android-merge-two-imagesこれはあなたに[オーバーレイ二つの画像内の – RAAAAM

+0

可能な複製を助けることを願っていますアンドロイドは、画像ビューを設定する](http://stackoverflow.com/questions/2739971/overlay-two-images-in-android-to-set-an-imageview) – GSerg

答えて

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/ –

6

を使用すると、1つの4つのビットマップを組み合わせることのためのトリックを行います。 このメソッドを3回呼び出して、4つの画像を結合します。

ステップ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

あなたはビットマップの配列として関数にあなたのイメージを渡します。これは、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; 
    } 

... Read more here

関連する問題