我已經實現了將浮點顏色通道(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