我需要从Bitmap2剪切Bitmap1。
例如,我有Bitmap1(来自资源可绘制的解码)和Bitmap2(也来自资源可绘制的解码)。
位图1:
| |
> <
| |
位图2:
|xxx|
|xxx|
|xxx|
我需要结果:
|xxx|
>x<
|xxx|
有人可以给我示例代码吗?
安卓
最佳答案
您可以加载两个位图,并使用PorterDuffXfermode
和DST_IN
屏蔽“ Bitmap2”,如下所示:
Bitmap bitmap2 = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap2);
Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.bitmap1);
Bitmap bitmap2MaskedByBitmap1 = Bitmap.createBitmap(bitmap2.getWidth(), bitmap2.getHeight(), bitmap2.getConfig());
Canvas canvas = new Canvas(bitmap2MaskedByBitmap1);
Paint paint = new Paint();
paint.setFilterBitmap(false);
canvas.drawBitmap(bitmap2, 0, 0, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
canvas.drawBitmap(bitmap1, 0, 0, paint);
bitmap2.recycle();
bitmap1.recycle();
// bitmap2MaskedByBitmap1 should now contain the desired image
// as long as your Bitmap1 mask isn't sh-t.