gpt4 book ai didi

android - 在 Imageview 上同时合并两个 ColorMatrix 或应用两个或多个 ColorMatrix

转载 作者:太空狗 更新时间:2023-10-29 12:51:22 26 4
gpt4 key购买 nike

我正在更改 ImageView 的亮度、对比度、饱和度和色调。我在上面搜索了很多。

我得到了一些适用于 ColorMatrix 的代码。

[1.] 对于亮度 ColorMatrix 是类似的东西

    float brightness = (-50F * 1.5F);
ColorMatrix cmB = new ColorMatrix();
cmB.set(new float[] { 1, 0, 0, 0, brightness,
0, 1, 0, 0,brightness,
0, 0, 1, 0, brightness,
0, 0, 0, 1, 0 });
myImageView.setColorFilter(new ColorMatrixColorFilter(cmB));

哪个工作正常。

[2.]对于对比度,ColorMatrix 是不同的东西,它也可以正常工作。

但是,所有这些 ColorMatrix 都单独工作。意味着最后应用的 ColorMatrix 的效果只是 ImageView 上的场景,因为它确实如此,这消除了先前应用的效果 ColorMatrix 并设置了最后应用的 ColorMatrix。

现在我想同时合并或混合 ColorMatrix of All。 意思是想将 ColorMatrix of Contrast 应用到 ColorMatrix of Brightnrs/Saturation/Hue 的效果上。

最佳答案

如果要应用两个颜色矩阵,只需将它们相乘即可。

如果你有颜色矩阵 A 和颜色矩阵 B,那么:

C = B * A;
outpixel = C * inpixel

相当于

outpixel = B * A * inpixel

编辑

我刚刚注意到那些是 5x4 矩阵(最初我认为它们是 4x4)。由于你不能直接将它们相乘,我认为在相乘之前向两个矩阵添加第 5 个标识行 (0,0,0,0,1) 是合适的(使它们都是 5x5),然后丢弃第 5 行相乘。

关于android - 在 Imageview 上同时合并两个 ColorMatrix 或应用两个或多个 ColorMatrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11974895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com