Folder Structuring
[photoenhancer] / src / plugins / sepia / sepiafilter.cpp
1 #include "sepiafilter.h"
2 #include <QImage>
3 #include <QColor>
4 #include <QDebug>
5 SepiaFilter::SepiaFilter()
6 {
7 }
8 void SepiaFilter::applyFilter(QImage &image)
9 {
10     int inputRed,inputGreen,inputBlue;
11     int outputRed,outputGreen,outputBlue;
12
13     for(int i=0;i<image.width();i++)
14         for(int j=0;j<image.height();j++)
15         {
16             QColor inPixel(image.pixel(i,j));
17             inputRed=inPixel.red();
18             inputBlue=inPixel.blue();
19             inputGreen=inPixel.green();
20             outputRed = (inputRed * .393) + (inputGreen *.769) + (inputBlue * .189);
21             outputGreen = (inputRed * .349) + (inputGreen *.686) + (inputBlue * .168);
22             outputBlue = (inputRed * .272) + (inputGreen *.534) + (inputBlue * .131);
23             if(outputBlue>255) outputBlue=255;
24             if(outputGreen>255) outputGreen=255;
25             if(outputRed>255) outputRed=255;
26             QColor outPixel(outputRed,outputGreen,outputBlue);
27             image.setPixel(i,j,outPixel.rgb());
28     }
29
30 }