public static Bitmap getViewBitmap2(Bitmap bitmap, Drawable backgroundDrawable, int width, int height) {
Bitmap newBitmap = copy(bitmap);
// 创建一个Canvas对象,并将新的Bitmap绑定到Canvas上
Canvas canvas = new Canvas(newBitmap);
backgroundDrawable.draw(canvas);
// 填充指定颜色的矩形
Paint paint = new Paint();
// paint.setColor(Color.RED); // 替换为你想要的颜色
// canvas.drawRect(0, 0, newBitmap.getWidth(), newBitmap.getHeight(), paint);
// 设置绘制模式为SRC_ATOP,去上层交集部分与下层非交集部分
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_ATOP));
// 在Canvas上绘制原始的Bitmap
canvas.drawBitmap(bitmap, 0, 0, paint);
extractBitmap(newBitmap, bitmap);
// 清除Xfermode,恢复绘制模式
paint.setXfermode(null);
// 返回新的Bitmap对象
return newBitmap;
}
网友评论