已知 QColor color; int32_t rgba = (color.red() << 16) | (color.green() << 8) | color.blue() | (color.alpha() << 24); 如何通过int反解出coolor
时间: 2024-01-23 08:04:18 浏览: 82
16进制和rgba颜色的相互转换
4星 · 用户满意度95%
可以使用以下代码将int32_t类型的rgba值转换回QColor类型的color值:
```
int32_t rgba = ...; // 给定的rgba值
int red = (rgba >> 16) & 0xff;
int green = (rgba >> 8) & 0xff;
int blue = rgba & 0xff;
int alpha = (rgba >> 24) & 0xff;
QColor color(red, green, blue, alpha);
```
上述代码中,首先使用右移操作符和按位与操作符,从rgba值中分离出red、green、blue和alpha分量的值。然后,使用QColor类的构造函数,将这些分量的值传递给构造函数,创建一个新的QColor对象。
阅读全文