Каким будет правильный способ преобразования значения цвета из float в байт? Сначала я думал, что b=f*255.0
должен это сделать, но теперь я думаю, что в этом случае только точный 1.0
будет преобразован в 255
, но 0.9999
уже будет 254
, что, вероятно, не что я хочу...
Кажется, что b=f*256.0
было бы лучше, за исключением того, что у него был бы нежелательный случай создания 256
в случае точного 1.0
.
В конце я использую это:
#define F2B(f) ((f) >= 1.0 ? 255 : (int)((f)*256.0))