public Color32 color32;//声明一个32位颜色
public void Test()
{
int r = (int)color32.r;
int g = (int)color32.g;
int b = (int)color32.b;
RGBTo565(r, g, b);
}
private void RGBTo565(int r,int g,int b)
{ //颜色值是0-255
string r_binary = IntToBinary(r).Substring(0,5);//r的值转换二进制 取前面5位
string g_binary = IntToBinary(g).Substring(0,6);//g的值转换二进制 取前面6位
string b_binary = IntToBinary(b).Substring(0,5);//b的值转换二进制 取前面5位
string rgb = r_binary + g_binary + b_binary;//合并
string value= string.Format("{0:X}", System.Convert.ToInt32(rgb, 2));//先转整形 再转16进制
Debug.Log("565颜色为:"+value);
}
private string IntToBinary(int value)
{
int remainder;
string binary = string.Empty;
while (value > 0)
{
remainder = value % 2;
value /= 2;
binary = remainder.ToString() + binary;
}
while (binary.Length<8)
{
binary += "0";
}
Debug.Log($"Binary: {binary}");
return binary;
}
在这里插入代码片
Unity C# 32位颜色转换565颜色
最新推荐文章于 2024-07-18 08:42:22 发布