Android Studio 中的图像混合模式(如 photoshop、paint.net)?



我正在尝试以与photoshop相同的方式混合两张图像,或者paint.net混合它们,具有不同的混合模式,例如Difference, Multiply, Additive, Color Burn, Glow, etc.

我发现PorterDuff.Mode效果很好,但它缺乏混合效果(它只有加法、乘法、屏幕(有没有办法获得更大范围的混合模式?有没有办法编辑android.graphics.PorterDuff;库以获取更多混合模式? 有什么想法吗?

例如: 这 变成这样: 结果

这是使用 btw 的波特达夫代码:

private static Bitmap Result(Bitmap bottomImage, Bitmap topImage){

int sizex = bottomImage.getWidth();
int sizey = bottomImage.getHeight();
Paint paint = new Paint();
Bitmap imageBitmap = Bitmap.createBitmap(sizex, sizey , Bitmap.Config.ARGB_8888);
Canvas comboImage = new Canvas(imageBitmap);
comboImage.drawBitmap(bottomImage, 0f, 0f, paint);;
PorterDuff.Mode mode = PorterDuff.Mode.MULTIPLY;//Porterduff MODE
paint.setXfermode(new PorterDuffXfermode(mode));
Bitmap ScaledtopImage = Bitmap.createScaledBitmap(topImage, sizex, sizey, false);
comboImage.drawBitmap(ScaledtopImage, 0f, 0f, paint);
return imageBitmap;
}

我不是真正的图像处理专家,但PorterDuff有一些混合模式,即变暗,变亮,乘法,屏幕和叠加。然后,您可以使用 in、atop、xor 等来获取所需的混合部分选择。

http://ssp.impulsetrain.com/porterduff.html https://developer.android.com/reference/android/graphics/PorterDuff.Mode

最新更新