将浮点颜色通道(R,G,B)转换为字节值

时间:2014-10-10 11:28:58

标签: c++ colors byte rgb

我实现了一个将浮动颜色通道(R,G,B)转换为字节值的函数。

  

例如为:   0.0f - > 0   1.0f - > 255

unsigned char RGBImage::convertColorChannel(float f) {

}

如何在C ++中获得此结果?

2 个答案:

答案 0 :(得分:3)

琐碎(如果你原谅C风格的演员):

return (unsigned char)(f * 255);

请注意,检查f是否正确[0.0 - 1.0]

答案 1 :(得分:2)

return f * 255;,由于返回类型,从floatunsigned char的强制转换是隐含的。

return (f * 255) + 0.5;正确舍入值(因为您正在丢失精度),但请记住,这是一个额外的计算,会带来性能损失。因此,如果要转换整个高分辨率图像(如类名所示),那么额外的计算时间可能会相加。