需要帮助了解以下Java语法
发布时间:2020-12-15 05:05:49 所属栏目:Java 来源:网络整理
导读:public void printPixelARGB(int pixel){ int alpha = (pixel 24) 0xff; int red = (pixel 16) 0xff; int green = (pixel 8) 0xff; int blue = (pixel) 0xff; System.out.println("ARGB : " + alpha + "," + red + "," + green + "," + blue);} 我发现Java语
public void printPixelARGB(int pixel){ int alpha = (pixel >> 24) & 0xff; int red = (pixel >> 16) & 0xff; int green = (pixel >> 8) & 0xff; int blue = (pixel) & 0xff; System.out.println("ARGB : " + alpha + "," + red + "," + green + "," + blue); } 我发现Java语法显示图像的每个像素的RGB值,但我对这种方法有点困惑.你可以通过解释这种方法来帮助我吗? 0xFF的?那是什么?此外,(像素>> 24)& 0xff是什么意思?提前致谢. 解决方法
像素是一个int
一个int有4个字节,每个字节有8位 举个例子 0xA3 0x41 0x28 0x76 是一个示例像素(1个int,其中包含4个字节,32位) 现在打包在此像素中的是有关透明度的信息(A)红色,绿色和蓝色组件. 透明度是第一个字节(0xA3) 所以为了得到红色部分,你向右移动16位,这给了 0x00 0x00 0xA3 0x41 现在红色是最正确的位置,但是你有那个透明度字节,这是不好的,所以你必须删除它 做与做0xFF,真的 0xA341&设为0x00FF 这意味着你和每个位,所以A3的位用00给出0,41的位用FF表示,因为FF是全1,给你原始值,即41 太红了 0x00 0x00 0x00 0x41 所以这段代码就是从一个整数中抽出每个组件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |