我实现了一个将浮动颜色通道(R,G,B)转换为字节值的函数。
例如为: 0.0f - > 0 1.0f - > 255
unsigned char RGBImage::convertColorChannel(float f) {
}
如何在C ++中获得此结果?
答案 0 :(得分:3)
琐碎(如果你原谅C风格的演员):
return (unsigned char)(f * 255);
请注意,不检查f
是否正确[0.0 - 1.0]
答案 1 :(得分:2)
return f * 255;
,由于返回类型,从float
到unsigned char
的强制转换是隐含的。
return (f * 255) + 0.5;
正确舍入值(因为您正在丢失精度),但请记住,这是一个额外的计算,会带来性能损失。因此,如果要转换整个高分辨率图像(如类名所示),那么额外的计算时间可能会相加。