为了账号安全,请及时绑定邮箱和手机立即绑定

视频中老师书写的代码可能存在功能实现上的错误或者粗心的漏洞

本来想写在评论区的,发现有字数限制。

老师的视频中书写的代码(源码)中:

      ColorMatrix hueMatrix = new ColorMatrix();

        hueMatrix.setRotate(0, hue);

        hueMatrix.setRotate(1, hue);

        hueMatrix.setRotate(2, hue);

实际hueMatrix.setRotate(0, hue);和hueMatrix.setRotate(1, hue);是起不到作用的,真正起作用的是hueMatrix.setRotate(2, hue);,也就是帮助文档里说的围绕BLUE调色圈的调节(把SeekBar拉到头和尾呈现的是纯蓝色)。

正确的写法是和调节其他两项的写法是一样的,要创建新的ColorMatrix对象然后进行postConcat操作。

      ColorMatrix hueMatrix0 = new ColorMatrix();

        hueMatrix0.setRotate(0, hue);

ColorMatrix hueMatrix1 = new ColorMatrix();

        hueMatrix1.setRotate(1, hue);

ColorMatrix hueMatrix2 = new ColorMatrix();

        hueMatrix2.setRotate(2, hue);

如果分别为其创建各自的SeekBar,就可以看到hueMatrix0的SeekBar拉到头尾是R调色圈,hueMatrix1的SeekBar拉到头尾是G调色圈,而hueMatrix2的SeekBar就和视频里的一样是B调色圈。

额...这算是挺久的视频了,不知道还有没有人和我一样来回顾,没有去翻看ColorMatrix类的源码,不知道我说的是否完全正确,只是现象是这样的,所以希望后面看到的人可以自己试一下我上面所说的。


正在回答

1 回答

我敲代码试了一下,存在一个整体和分颜色的色相变化。

hueMatrix.setRotate(0, hue); // Red
hueMatrix.setRotate(1, hue); // Green
hueMatrix.setRotate(2, hue); // Blue

只运行单独一行,从程序效果上来说是这样的变化。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android图像处理-打造美图秀秀从它开始
  • 参与学习       27243    人
  • 解答问题       65    个

图像色彩的分析与处理,演示市面上常见的图像处理特效的实现方法

进入课程

视频中老师书写的代码可能存在功能实现上的错误或者粗心的漏洞

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信