Added Logic for Customizable Plugin and Filter Support Framework
[photoenhancer] / src / filters / autocolor / autocolorfilter.cpp
1 #include "autocolorfilter.h"
2 #include <QImage>
3 #include <QColor>
4 #include <QDebug>
5 AutoColorFilter::AutoColorFilter()
6 {
7 }
8 void AutoColorFilter::applyFilter(QImage &image)
9 {
10         int outputRed,outputGreen,outputBlue,cg,dr,dg,db,inputRed,inputBlue,inputGreen;
11     for(int i=0;i<image.width();i++)
12         for(int j=0;j<image.height();j++)
13         {
14             QColor inPixel(image.pixel(i,j));
15             inputRed=inPixel.red();
16             inputBlue=inPixel.blue();
17             inputGreen=inPixel.green();
18
19             cg=(inputBlue+inputGreen+inputRed)/3;
20             dr=inputRed-cg;
21             dg=inputGreen-cg;
22             db=inputBlue-cg;
23
24             outputBlue=inputBlue-dr;
25             outputGreen=inputGreen-dg;
26             outputRed=inputRed-dr;
27
28             if(outputBlue<0) outputBlue=0;
29             if(outputGreen<0) outputGreen=0;
30             if(outputRed<0) outputRed=0;
31
32             if(outputBlue>255) outputBlue=255;
33             if(outputGreen>255) outputGreen=255;
34             if(outputRed>255) outputRed=255;
35
36
37             QColor outPixel(outputRed,outputGreen,outputBlue);
38             image.setPixel(i,j,outPixel.rgb());
39     }
40
41 }