You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何修改十六进制ARGB整型的AA、RR等各分量数值?

操作原理

32位int型的0xAARRGGBB格式中,各分量占8位,位偏移量如下:

  • Alpha分量(AA):偏移24位(最高8位,bit 24~31)
  • 红色分量(RR):偏移16位(bit 16~23)
  • 绿色分量(GG):偏移8位(bit 8~15)
  • 蓝色分量(BB):偏移0位(最低8位,bit 0~7)

修改单个分量的通用步骤:

  1. 用掩码清除目标分量对应的8位数据
  2. 将新的分量值(需保证范围0~255)左移对应偏移量
  3. 用按位或运算把新值写入目标位置

代码示例

原始变量定义:

int argb = 0xAARRGGBB;

修改Alpha分量(AA)

// 新alpha值,取值范围0~255
int newAlpha = 0xCC;
// 先清除原有alpha位(掩码0x00FFFFFF),再写入新的alpha值
argb = (argb & 0x00FFFFFF) | (newAlpha << 24);

修改红色分量(RR)

// 新红色值,取值范围0~255
int newRed = 0x33;
// 先清除原有红色位(掩码0xFF00FFFF),再写入新的红色值
argb = (argb & 0xFF00FFFF) | (newRed << 16);

修改绿色分量(GG)

int newGreen = 0x44;
argb = (argb & 0xFFFF00FF) | (newGreen << 8);

修改蓝色分量(BB)

int newBlue = 0x55;
argb = (argb & 0xFFFFFF00) | newBlue;

注意事项

  • 新的分量值必须保证在0~255区间内,如果值可能超出范围,建议先做截断处理:newValue & 0xFF,避免高位数据污染其他分量
  • 如果需要同时修改多个分量,可以合并掩码和位移操作,减少计算步骤

内容的提问来源于stack exchange,提问作者Day Trip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:18:04