[计算机视觉]RGB十六进制与十进制互转(附Java代码)

在Java中使用BufferedImage的getRGB来获取图像像素值.

BufferedImage image = ImageIO.read(new FileInputStream("图片路径"));
int color = image.getRGB(x,y);//这里的x,y是像素点的位置

返回的是 int 类型(ARGB),例如经常用到的 FF000000(黑色) FFFFFFFF(白色)
        按两位来分隔,以黑色来说,FF 代表 A(透明度)的255(完全不透明)
        前面两个00代表 R(红色的深度) 中间两个00 绿色 后面两个00蓝色
    所以需要格外处理

int r = (color >> 16) & 0xff;
int g = (color >> 8) & 0xff;
int b = color & 0xff;

设置值,使用BufferedImage的setRGB来设置值(也是ARGB的)

image.setRGB(x,y,0xFF000000);//0x开头的数字代表十六进制 设置点为黑色

我们获取到的RGB会是ARGB(十六进制) 转10进制的int形式
当我们通过上述方法获取到R G B的结果是为10进制0-255
所以我们执行操作是十六进制
最终设置值为16进制的10进制表示形式

int setColor = 255 << 24;//设置A(透明度)的值 左移24位是放到最前面
setColor += (r << 16);
setColor += (g << 8);
setColor += b;

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HackShendi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值