我已经实现了将浮点颜色通道(R,G,B)转换为字节值的函数。将浮点颜色通道(R,G,B)转换为字节值
例如为: 0.0F - > 0 1.0F - > 255
unsigned char RGBImage::convertColorChannel(float f) {
}
我怎样才能得到这导致C++?
我已经实现了将浮点颜色通道(R,G,B)转换为字节值的函数。将浮点颜色通道(R,G,B)转换为字节值
例如为: 0.0F - > 0 1.0F - > 255
unsigned char RGBImage::convertColorChannel(float f) {
}
我怎样才能得到这导致C++?
return f * 255;
,自投由于返回类型,float
到unsigned char
是隐含的。
return (f * 255) + 0.5;
要正确舍入值(因为你正在失去精度),但请记住,这是一个额外的计算,将带来性能的影响。因此,如果您要转换整个高分辨率图像,如类名所示,那么额外的计算时间可能会相加。
中平凡(如果你不介意的C样式转换):
return (unsigned char)(f * 255);
注意这并没有检查是否f
是在正确的范围内[0.0 - 1.0]
static_cast(255 * float value) –
drescherjm
2014-10-10 11:31:11