我正在寻找有关此操作的建议,我一直在尝试一些运气不好的想法。
我有这个面具:
这张图片:
最终结果应该是:
我只想用蒙版更改图像的颜色。
经过几次尝试,我取得了一些进步。 这是我当前的代码:
Bitmap carBaseBitmap = BitmapFactory.decodeResource(getResources(), model);
Bitmap maskBitmap = BitmapFactory.decodeResource(getResources(), overlay);
Bitmap finalFinal = Bitmap.createBitmap(maskBitmap.getWidth(), maskBitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(finalFinal);
ColorMatrix colorMatrix = new ColorMatrix();
float[] colorTransform = getCarColor();
colorMatrix.set(colorTransform);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(colorMatrix);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setXfermode(new PorterDuffXfermode(Mode.OVERLAY));
paint.setColorFilter(filter);
canvas.drawBitmap(carBaseBitmap, 0.0f, 0.0f, null);
canvas.drawBitmap(maskBitmap, 0.0f, 0.0f, paint);
getColor方法返回:
float[] colorFilter = {
1, 0, 0, 0, 20,
0, 1, 0, 0, 61,
0, 0, 1, 0, 184,
0, 0, 0, 1, 0,
};
,最终结果是: