java - 使用 BufferedImages 获取图像每个像素的颜色

标签 java image colors pixel

我正在尝试获取图像每个像素的每种颜色。 我的想法如下:

int[] pixels;
BufferedImage image;

image = ImageIO.read(this.getClass.getResources("image.png");
int[] pixels = ((DataBufferInt)image.getRaster().getDataBuffer()).getData();

是吗?我什至无法检查“像素”数组包含的内容,因为出现以下错误:

java.awt.image.DataBufferByte cannot be cast to java.awt.image.DataBufferInt

我只想接收数组中每个像素的颜色,我该如何实现?

最佳答案

import java.io.*;
import java.awt.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;

public class GetPixelColor {
    public static void main(String args[]) throws IOException {
        File file = new File("your_file.jpg");
        BufferedImage image = ImageIO.read(file);
        // Getting pixel color by position x and y 
        int clr = image.getRGB(x, y);
        int red =   (clr & 0x00ff0000) >> 16;
        int green = (clr & 0x0000ff00) >> 8;
        int blue =   clr & 0x000000ff;
        System.out.println("Red Color value = " + red);
        System.out.println("Green Color value = " + green);
        System.out.println("Blue Color value = " + blue);
    }
}

当然你必须为所有像素添加一个for循环

关于java - 使用 BufferedImages 获取图像每个像素的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22391353/

相关文章:

java - 将 RGB 转换为 HSB(又名 HSV)

javascript - 使用 three.js 的颜色选择器中的十六进制值作为字符串

java - 变量 sc 可能尚未初始化

java - 打印堆栈内容的递归方法

css - 使图像对搜索引擎和 Facebook 不可见?

image - 从添加背景的第二张图像中使用的列表中查找图像

java - 如何正确地多线程独立任务的集合?

java - 如何使用 JUNG 显示树布局,但具有更整齐的间距和结构

image - Docker - 使用 RHEL iso 创建基础镜像

java - 使用 OpenGL 进行纹理颜色操作(在使用 Java 的 LWJGL 中)