我正在尝试创建人脸交换应用程序,但是在混合人脸位图时遇到问题。我尝试了不同的XferModes
,尝试添加ColorFilter
,尝试使用setAlpha
的人脸位图,但我只是无法获得想要的结果。
这是我的代码:
Canvas canvas = new Canvas(tempBitmap1);
Paint p = new Paint();
Bitmap faceBitmapScaled = Bitmap.createScaledBitmap(FilterSystem.selectedImage, (int)(face.getWidth()*1.7), (int)(face.getHeight()*1.7), false);
p.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.MULTIPLY));
canvas.drawBitmap(base, 0,0 ,null);
canvas.drawBitmap(faceBitmapScaled, left, top, p);
未应用XferMode
PorterDuff.Mode.Multiply
我想要得到的结果。如您所见,尽管基础具有深色肤色,面部位图具有非常浅的色彩,但它仍能够完美融合。我知道我必须在这里修改多个值(对比度,亮度等),但我不知道哪个值。 :