您好,欢迎来到九壹网。
搜索
您的当前位置:首页Java中的byte

Java中的byte

来源:九壹网

很郁闷  一段很简单的代码  把ARGB转为RGBA,结果图像颜色偏红。

搞了很久,才知道问题出在了byte身上。

一个颜色分量8位,想当然的用了byte,组合成一个像素32位,就是

(r<<24)|(g<<16)|(b<<8)|(a)

问题就出在了byte到int的转换上

byte在Java中是有符号的 (win32中是unsigned char)

这样0xFF转成int就变成0xFFFFFFFF  (-1)

也就是说如果蓝色  b=0xFF的话, 这样转化过后颜色就变为白色了

如果是绿色的话  就变黄色了

 

不知道Java在设计时怎么想的,byte为无符号才更加贴合我们的需要

 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务