0xFF000000=-16777216
    0xFFFFFFFF=-1
    0x000000=0
    0xFFFFFF=16777215
    0x01000000=16777216
    0x01FFFFFF=33554431
    0x7FFFFFFF=2147483647
    0x80000000=-2147483648 2147483648
    0x80000001=-2147483647 2147483649
    0x100000000=0x80000000/2
    颜色值=(65536Red)+(256Green)+(Blue) —R G B必须是整数

    1. function 获取RGB(ARGB)--0xff000000
    2. local RGB
    3. --把四字节颜色先处理成双字节
    4. if ARGB>0x100000000/2 then
    5. ARGB=ARGB-0x100000000 -- 0x80000000*2
    6. elseif ARGB>=0x01000000 and ARGB<0x100000000/2 then
    7. ARGB=ARGB-0x01000000
    8. end
    9. --根据双字节颜色值0xaarrggbb处理成0xrrggbb 不带透明度
    10. if ARGB<0 then --负数值的颜色
    11. RGB=ARGB+0x01000000
    12. ARGB=ARGB
    13. else --正常颜色值+双字节0x8000000以下的颜色值
    14. RGB=ARGB
    15. ARGB=ARGB-0x01000000
    16. end
    17. local r = math.floor(RGB/0x010000) --脚本颜色RGB
    18. local g = math.floor(RGB%0x010000/0x000100)
    19. local b = math.floor(RGB%0x000100)
    20. return ARGB,(65536*r)+(256*g)+(b),r,g,b
    21. end

    双线性插值 https://www.cnblogs.com/funny-world/p/3162003.html