2014-10-10 85 views

回答

2

return f * 255;,自投由於返回類型,floatunsigned char是隱含的。

return (f * 255) + 0.5;要正確舍入值(因爲你正在失去精度),但請記住,這是一個額外的計算,將帶來性能的影響。因此,如果您要轉換整個高分辨率圖像,如類名所示,那麼額外的計算時間可能會相加。

3

中平凡(如果你不介意的C樣式轉換):

return (unsigned char)(f * 255); 

注意這並沒有檢查是否f是在正確的範圍內[0.0 - 1.0]