2014-10-10 63 views

回答

2

return f * 255;,自投由于返回类型,floatunsigned char是隐含的。

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

3

中平凡(如果你不介意的C样式转换):

return (unsigned char)(f * 255); 

注意这并没有检查是否f是在正确的范围内[0.0 - 1.0]