0

我们可以从一个矩形构造一个位图吗?

我在矩形中绘制位图,并希望在位图图像上绘制的笔触成为图像的一部分。

我想知道是否可以从 Rect 构造位图,以便新位图将旧图像和笔画作为单个图像。

谢谢你

4

2 回答 2

3

您始终可以使用画布来帮助您以所需的方式创建已解码的位图:

Bitmap originalBmp = null;//Here goes original Bitmap...
ImageView img = null;//Any imageview holder you are using...
Bitmap modifiedBmp = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);//Configure with your proper size and color
Canvas canvas = new Canvas(modifiedBmp);

//At this point the modified bitmap has the original one, starting from here, you can add any overlay you want...
canvas.drawBitmap(originalBmp, 0, 0, new Paint());

//And do all the other modifications you want here...
canvas.drawLines(new float[]{}, null);
canvas.drawCircle(x, y, radius, null);

//At this point the modified bitmap will have anything you added
img.setImageBitmap(modifiedBmp);

// IF YOU ARE OVERRIDING ONDRAW METHOD
public void onDraw(Canvas canvas){

    //Here DO your DRAW BITMAP NOTE: paint must be already created...
    canvas.drawBitmap(bt, 0, 0, paint);

    paint.setColor(Color.BLACK);
    paint.setStrokeWidth(3);
    canvas.drawRect(30, 30, 80, 80, paint);

    super.onDraw(canvas);
}

问候!

于 2013-06-27T22:43:54.963 回答
0

是的,你可以,使用画布你可以在你的旧 bimtap 上画一些东西。

   Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                bitmap.getHeight(), Config.ARGB_8888);
                Canvas canvas = new Canvas(output);

                final int color = 0xff424242;
                final Paint paint = new Paint();

                final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());

                paint.setAntiAlias(true);
                canvas.drawARGB(0, 0, 0, 0);
                paint.setColor(color);
                  // do some canvas drawing
                canvas.drawBitmap(bitmap, rect, rect, paint);
于 2013-06-27T22:47:56.377 回答