0

ハイ、私はこれを検索しようとしましたが、あまり幸運ではありませんでした。最も似ているのはこれ です 。アンドロイド向けに開発中です。問題は、png 形式の画像があることです (または、私のアプリでは bmp が非常に大きいため、jpg)。上から下に 3 つの画像を結合する方法を教えてください。それらを表示するためだけにsdに保存する必要はありません。ありがとうございます。回答のある同様の質問が存在する場合は申し訳ありません。

4

1 に答える 1

2

Canvas を使用してから、適切な上オフセットと左オフセットを使用して各ビットマップを描画できます (各画像が Bitmap オブジェクトに読み込まれると仮定します)。

前に描画されたビットマップの合計サイズによって、次のビットマップの上部オフセットを増やします。

http://developer.android.com/reference/android/graphics/Canvas.htmlをご覧ください

例:

public void stackImages(Context ctx)
{
    // base image, if new images have transparency or don't fill all pixels
    // whatever is drawn here will show.
    Bitmap result = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);

    // b1 will be on top
    Bitmap b1 = Bitmap.createBitmap(400, 200, Bitmap.Config.ARGB_8888);

    // b2 will be below b1
    Bitmap b2 = Bitmap.createBitmap(400, 200, Bitmap.Config.ARGB_8888);

    Canvas c = new Canvas(result);

    c.drawBitmap(b1, 0f, 0f, null);

    // notice the top offset
    c.drawBitmap(b2, 0f, 200f, null);

    // result can now be used in any ImageView
    ImageView iv = new ImageView(ctx);
    iv.setImageBitmap(result);

    // or save to file as png
    // note: this may not be the best way to accomplish the save
    try {
           FileOutputStream out = new FileOutputStream(new File("some/file/name.png"));
           result.compress(Bitmap.CompressFormat.PNG, 90, out);
    } catch (Exception e) {
           e.printStackTrace();
    }
}
于 2012-05-17T17:21:12.217 に答える