Пример #1
0
std::string toHtml(const RGB &rgb) {
    char buf[32];

    // Microsoft doesn't define round(double) in <cmath>
    unsigned r = boost::numeric::converter<unsigned, double>::convert(clip(rgb.r())*255);
    unsigned g = boost::numeric::converter<unsigned, double>::convert(clip(rgb.g())*255);
    unsigned b = boost::numeric::converter<unsigned, double>::convert(clip(rgb.b())*255);

    sprintf(buf, "#%02x%02x%02x", r, g, b);
    return buf;
}
Пример #2
0
void Image::gammaCorrect(float dGamma)
{
	RGB rgbTemp;
	float fPower = 1.0 / dGamma;
	
	for(int x = 0; x < m_nWidth; x++) {
		for(int y = 0; y < m_nHeight; y++) {
			rgbTemp.set(m_rgbImage[x][y]);
			
			rgbTemp.clamp(0.0, 1.0);
						
			m_rgbImage[x][y].R = pow(rgbTemp.r(), fPower);
			m_rgbImage[x][y].G = pow(rgbTemp.g(), fPower);
			m_rgbImage[x][y].B = pow(rgbTemp.b(), fPower);
		}
	}
}