Cpper
C/C++高级工程师 Android高级软件工程师 IT集成工程师 音频工程师 熟悉c,c++,java,c#,py,js,asp等多种语言 程序猿
void adjustImageHSL(QImage& image,qreal hue,qreal saturation,qreal lightness)
{
    unsigned 
int* data = (unsigned int*)image.bits();
    
int size = image.width()*image.height();
    QColor color;

    
for(int i = 0; i < size; i++)
    {
        
int red = qRed(data[i]);
        
int green = qGreen(data[i]);
        
int blue = qBlue(data[i]);
        color.setRed(red);
        color.setGreen(green);
        color.setBlue(blue);
        qreal h 
= color.hueF() + hue;
        qreal s 
= color.saturationF() + saturation;
        qreal l 
= color.lightnessF() + lightness;
        h 
= qBound<qreal>(0,h,1);
        s 
= qBound<qreal>(0,s,1);
        l 
= qBound<qreal>(0,l,1);
        color.setHslF(h,s,l);
        color.setAlpha(qAlpha(data[i]));
        data[i] 
= qRgba(color.red(),color.green(),color.blue(),color.alpha());
    }

    
return;
}
posted on 2019-08-22 11:49 ccsdu2009 阅读(10) 评论(0)  编辑 收藏 引用 所属分类: QT编程

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理