如何从其他位图中剪切一个位图
问题描述:
我需要从位图2中剪切Bitmap1 .. 例如,我有Bitmap1(从资源drawable中解码)和Bitmap2(从Resources中解码也可绘制)。如何从其他位图中剪切一个位图
Bitmap1:
| |
> <
| |
Bitmap2:
|xxx|
|xxx|
|xxx|
我需要的结果是:
|xxx|
>x<
|xxx|
有人能给我的示例代码?
Android。
答
你可以像这样同时加载的位图和使用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.
!大!谢谢!但现在我有黑色背景的图像...我可以用空(alpha 0)背景来做到吗? – user868395 2012-03-12 20:37:07
ok)任务完成)Mode.XOR – user868395 2012-03-12 21:22:47