gpt4 book ai didi

java - java中图像的像素值表示

转载 作者:太空宇宙 更新时间:2023-11-04 15:14:46 24 4
gpt4 key购买 nike

我正在尝试使用以下代码读取图像的像素值

 int[] pixel;
BufferedImage imageA = ImageIO.read(new File("xyz.bmp"));
for (int y = 0; y < imageA.getHeight(); ++y) {
for (int x = 0; x < imageA.getWidth(); ++x) {
pixel = imageA.getRaster().getPixel(x, y, new int[3]);
}}

RGB 值分别存储在像素 [0]、像素 [1] 和像素 [2] 中,当我看到输出时,我看到的值范围在 0 到 255 之间。我看到一些使用下面的代码来获取像素值

int pixel;
BufferedImage imageA = ImageIO.read(new File("xyz.bmp"));
for (int y = 0; y < imageA.getHeight(); ++y) {
for (int x = 0; x < imageA.getWidth(); ++x) {
pixel = imageA.getRGB(x, y);
}}

当我看到特定像素的输出时,它是 -14935264 。这个值代表什么,上面两种方法有什么区别。

最佳答案

在第二种情况下,您将获得一个 int,其中包含较低 24 位的 RGB 值。红色分量是位 23-16,绿色分量是位 15-8,蓝色分量是位 7-0。

如果你想从 int 中获取组件:

int red = (pixel >> 16) & 0xFF;
int green = (pixel >> 8) & 0xFF;
int blue = pixel & 0xFF;

反过来:

int pixel = (red << 16) | (green << 8) | blue;

关于java - java中图像的像素值表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20951932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com