十进制颜色转换成RGBA

public uint[] int2Color(uint color)
    {
        uint[] rgb = new uint[4];

        uint r = (color >> 16) & 0xff;
        uint g = (color >> 8) & 0xff;
        uint b = color & 0xff;
        uint a = (color >> 24) & 0xff; ;

        rgb[0] = r;
        rgb[1] = g;
        rgb[2] = b;
        rgb[3] = a;

        return rgb;
    }

一个int由4个byte组成,而一个byte的存储范围是0-255,所以一个int可以存储一个颜色或者一个IP地址。

例如:十进制4294901760转为二进制后是11111111111111110000000000000000

r = (00000000 00000000 11111111 11111111) & (00000000 00000000 00000000 11111111) = 255;
g = (00000000 11111111 11111111 00000000) & (00000000 00000000 00000000 11111111) = 0;
b = (11111111 11111111 00000000 00000000) & (00000000 00000000 00000000 11111111) = 0;
a = (11111111 00000000 00000000 11111111) & (00000000 00000000 00000000 11111111) = 255;

此条目发表在日常随笔分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

邮箱地址不会被公开。 必填项已用*标注