!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    typedef DWORD COLORREF;rgb返回一个colorref类型的!
      

  2.   

    typedef DWORD COLORREF;最小值是0 即 RGB(0,0,0)全黑色
      

  3.   

    看你作什么用,中间的运算也许需要转换到double等其他类型,但是刚读取和存储的时候应该都是[0, 255]
      

  4.   

    RGB在 WINDOWS下是byte类型的,但是像 一些软件,比如opencv就是用[0,1]之间的浮点数来表示颜色。
      

  5.   

    看应用了:
    1)如在OpenVG等多数图形标准中ARGB的每个Channel为0..1之间
    2)在实际嵌入系统或常见图形格式中ARGB每个Channel为0..255之间(也有16Bits一个Channel的,方便加速)
    3)在一些图形处理软件中,为计算梯度填充或抗锯齿的需要,多数会用16.16格式或8.8格式等等FixedPoint(有小数)----主要方便中间运算
      

  6.   

    颜色在GPU中运算都是用0-1之间的浮点数
      

  7.   

    啊 为什么RGB值,怎么无法使用小数呀
      

  8.   


    lz 有意思r是8为
    g是8位
    b是8位刚好加alpha是32位用浮点数保存干嘛?
      

  9.   

    1)对于诸如OpenCV/OpenVG等图形标准中,您无法保证显示设备一定是ARGB8888的形式,考虑到未来的扩展,在这些图形标准中一定使用的是浮点数,其取值为[0..1]
    2)在图形学中,诸如梯度填充和抗锯齿一定会涉及到小数;同时针对多图层和Gradient等运算的累积误差(LS所说正解)也一定会使用小数,此时,可以使用FixedPoint处理(有GPU帮助也可以使用浮点数)
      

  10.   

    有可能是float..
    像DX就有两个一个是D3DXCOLOR是0~1的浮点另一个是D3DXCOLOR_VALUE是0~255的整形