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

标签 android android-bitmap porter-duff blend-mode

我正在尝试以与 photoshoppaint.net 相同的方式混合两个图像,使用不同的混合模式,例如 Difference、Multiply、Additive、Color燃烧、发光等

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

例如: THIS 变成这样: Result

顺便说一下,这是我使用的 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;

}

最佳答案

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

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

关于android - Android Studio 中的图像混合模式(如 photoshop、paint.net)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51996300/

相关文章:

java - 试图缩小 Android 中的位图不起作用

android - 如何在位图周围创建浮雕?

android - 如何使用 PorterDuff Xfermodes 和 Alpha Mask 删除位图的一部分?

java - 限制按钮点击次数

java - System.getProperty(param) 返回错误值 - Android

Android:解析JSON中的特殊字符(ä,ö,ü)

android - Porter-Duff:不同形状的不同行为?

android - 当 android :uiOptions ="splitActionBarWhenNarrow" is set? 时,操作栏在什么 dp 屏幕宽度下不拆分

java - 从 WebView 保存图像

android - 特定 Activity 被销毁时释放内存