/*
* HighlightFilter.h
* Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED.
*/
// SOL++2000
#pragma once
// 2000.07.07
#include <sol\ImageFilter.h>
namespace SOL {
#define Max(a,b) (((a) > (b)) ? (a) : (b))
#define Min(a,b) (((a) < (b)) ? (a) : (b))
class HighlightFilter :public ImageFilter {
private:
int percent;
private:
void brighten(int& r, int& g, int& b)
{
r = r + (percent * r) / 100;
g = g + (percent * g) / 100;
b = b + (percent * b) / 100;
r = Min(Max(0, r), 255);
g = Min(Max(0, g), 255);
b = Min(Max(0, b), 255);
}
public:
HighlightFilter(int p)
{
if (p < 0 )
p = 0;
if (p > 100)
p = 100;
percent = p;
}
public:
DIBSection* HighlightFilter::filterRGB(DC& dc, DIBSection& image)
{
int w = image.getWidth();
int h = image.getHeight();
DIBSection* newImage = new DIBSection(dc, w, h);
for (int y = 0; y<h; y++) {
for (int x = 0; x<w; x++) {
int r = 0;
int g = 0;
int b = 0;
COLORREF c = image.getPixel(x, y, r, g, b);
brighten(r, g, b);
newImage->setPixel(x, y, RGB(r, g, b));
}
}
return newImage;
}
};
}
|