亮度调整后,要求色相不改变

标题

亮度调整是色彩中常用的,很多多时候我们调整亮度的时候往往希望色彩不要偏移到其他色彩即色相不变。

以下是我用C#写亮度调整实测方案,实测像素色相调整后不变,但亮度和色彩浓度会有所增加。

     bitmapOp = new Bitmap(objImage.getPeekImage());//获得将要操作的图像
    new 亮度调整().AdjustColor(bitmapOp, trackBarBlack.Value); //trackBarBlack.Value范围【0~255】
   

//亮度调整类  
    class 亮度调整 : ClassColorFilterByRGB
    {
        private int numberN;

        protected override void Prepare(int[] pValues)    //重写父类中的Prepare方法
        {  
            numberN = pValues[0];    
        }
        protected override void Adjust(rgbClassRef rgb)      //重写父类中的Adjust方法,对传入的每一个像素分量进行运算
        {

          // 其中 R,G,B等比例增加,色相保持不变,同时亮度增加了。(255 - rgb.D)确保色彩增加量后最大不超过255上限值。                        rgb.X += (byte)((255 - rgb.D) * numberN * rgb.X / 255 / 255);
            rgb.Z += (byte)((255 - rgb.D) * numberN * rgb.Z / 255 / 255);
            rgb.D += (byte)((255 - rgb.D) * numberN * rgb.D / 255 / 255); 

        }

    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值