- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用此方法获取图像中像素的整数值:
int colour = img.getRGB(x, y);
然后我打印出这些值,我看到黑色像素对应于“-16777216”之类的值,一种蓝色对应于“-16755216”等值。有人可以解释一下这背后的逻辑吗?值(value)?
最佳答案
RGB int
颜色在其位中包含颜色的红、绿、蓝分量。您必须查看其二进制或十六进制表示形式,而不是将其视为整个整数(而不是查看其十进制表示形式)。
int
有 32 位,3x8 = 24 用于存储 RGB 分量(每个 8 位),格式如下:
2 1 0
bitpos 32109876 54321098 76543210
------ --+--------+--------+--------+
bits ..|RRRRRRRR|GGGGGGGG|BBBBBBBB|
您可以使用位掩码提取或设置组件:
int color = img.getRGB(x, y);
// Components will be in the range of 0..255:
int blue = color & 0xff;
int green = (color & 0xff00) >> 8;
int red = (color & 0xff0000) >> 16;
如果颜色还具有 alpha 分量(透明度)ARGB,则它会获取最后剩余的 8 位。
3 2 1 0
bitpos 10987654 32109876 54321098 76543210
------ +--------+--------+--------+--------+
bits |AAAAAAAA|RRRRRRRR|GGGGGGGG|BBBBBBBB|
以及值:
int alpha = (color & 0xff000000) >>> 24; // Note the >>> shift
// required due to sign bit
alpha 值为 255 表示颜色完全不透明,值为 0 表示颜色完全透明。
您的颜色:
您的颜色是color = -16755216
,其中包含:
blue : 240 // Strong blue
green: 85 // A little green mixed in
red : 0 // No red component at all
alpha: 255 // Completely opaque
关于java - 了解 BufferedImage.getRGB 输出值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57262625/
我是 Java 新手。我从Java教程Oracle中看到了下面的代码。我正在努力理解此代码片段的用途: public synchronized int getRGB() { r
第一次调用 getRGB 它返回白色,但第二次调用它时,它返回黑色。 为什么 BufferedImage 的 getRGB 在我第二次调用后返回不同的值? 最佳答案 因为数据改变了? (可能通过增量加
如果我要 int RGB = image.getRGB(x,y),其中 x 和 y 是 image 的透明像素的坐标,那么RGB 的值是?空? 最佳答案 它基本上可以是任何东西。 Alpha 分量与
这段代码的目的是提取 turtle.jpg 中每个像素的每个 RGB 值,但由于某种原因,它给出了一个越界的索引错误。寻求帮助,谢谢。 int j=1; int i=1; BufferedImage
所以,我正在尝试 BufferedImage 中特定像素的颜色... public void LoadImageLevel (BufferedImage image) { int w = im
我使用方法 BufferedImage.getRGB(...) 从 BufferedImage 获取 int 数组,但是当我尝试访问数组中的那些 int 时,我收到 ArrayIndexOutOfBo
我正在学习java,我正在尝试从像素获取RGB信息。我设法做到了这一点,但是,我想了解为什么当我打印出原始的 getRGB() 值时,我得到一个带有减号的不完整的二进制数: -100110011001
我想创建一种新颜色,因为当我使用 .getRGB() 时它工作得很好,但只注册了几种颜色。 这是我的代码,它适用于蓝色和黄色: if (!convergence(z0)){
我正在尝试将图像转换为矩阵并将其转换回来,但是两张图片不同:将其转换为矩阵: public int[][] getMatrixOfImage(BufferedImage bufferedImage)
如果我以这种方式创建一个 BufferedImage: BufferedImage image = new BufferedImage(4, 3, BufferedImage.TYPE_BYT
我使用此方法获取图像中像素的整数值: int colour = img.getRGB(x, y); 然后我打印出这些值,我看到黑色像素对应于“-16777216”之类的值,一种蓝色对应于“-16755
您好,我正在尝试从 C# 转换 Java 应用程序,这是我遇到的唯一问题..:旁注:那个 Bitmap 类是我做的一个类。 Java 代码: for (int x = 0; x < x
我无法找出解决此问题的方法请帮助我。 我试图通过在 collapseToolbarLayout 中提取图像中的颜色来更改工具栏的颜色,这是我的 java 代码 public class Toolbar
我试图实现 Hill Cipher通过抓取图像像素来对图像进行算法。事实证明,小图像加载得很好。 但是对于较大的图像(8MP或12MP),加载速度很慢;因此写入图像也很慢。 我使用 bufferedI
我正在使用这种方法获取图像中像素的整数值: int colour = img.getRGB(x, y); 然后我打印出这些值,我看到黑色像素对应于“-16777216”之类的值,一种蓝色对应“-167
我正在使用 poi.apache 阅读 xslx 工作簿,我想获取单元格的 RGB 颜色代码。当我尝试从 XSSFColor 获取 RGB 代码时,即使我知道那里有颜色,它也会返回 null。 for
我是java图像处理新手。实际上我想做的是将图像的所有像素值保存到数组 rgbArray[] 中,问题是我在数组的所有索引中得到相同的值,即数组的所有索引都具有相同的值。部分代码如下: int[] r
我正在编写一个带有简单隐写术实现的程序。 我有一个问题,因为如果我对一个像素使用 setRGB 然后 getRGB 我会得到不同的值。我读到 setRGB 和 getRGB 不是字节和位操作的最佳主意
我正在使用Applet编写一个小游戏。我希望能够检查屏幕上像素的颜色。但是,当我在游戏循环(反复执行的 while 循环)中的缓冲图像上使用 .getRGB() 时,即使像素颜色实际上从未改变,它也会
我正在使用机器人截取屏幕截图,然后在这些屏幕截图中搜索较小的图像。由于 Gamma 校正,这适用于 Windows 但不适用于 OS X。我能想到的最佳解决方案是简单地匹配相似的颜色,而不是完全匹配颜
我是一名优秀的程序员,十分优秀!