首页 > 解决方案 > Android Studio 中的图像混合模式(如 photoshop、paint.net)?

问题描述

我正在尝试以相同的方式混合两个图像Photoshoppaint.net混合它们,具有不同的混合模式,如Difference, Multiply, Additive, Color Burn, Glow, etc.

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

例如: 变成这样: 结果

这是我使用 btw 的 porterduff 代码:

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;

}

标签: androidandroid-bitmapporter-duffblend-mode

解决方案


我不是图像处理方面的专家,但 PorterDuff 有一些混合模式,即变暗、变亮、正片叠底、加网和叠加。然后,您可以使用 in、atop、xor 等来获得您想要的混合部分的选择。

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


推荐阅读