如何使用java提取图像中的颜色?

时间:2017-07-20 09:21:27

标签: java ocr rgb bufferedimage

我正在尝试使用以下代码来提取图像中的颜色。我使用以下代码,但无法获取颜色。任何人都可以有更好的解决方案或请告诉我的代码有什么问题。

public static void main(String args[]) throws IOException {
    File file = new File("image.png");
    BufferedImage image = ImageIO.read(file);
    //  int clr;
    int redd = 0;
    int greenn = 0;
    int bluee = 0;
    for (int i = 0; i < image.getHeight(); i++) {
        for (int j = 0; j < image.getWidth(); j++) {
            int clr = image.getRGB(i, j);
            redd = (clr & 0x00ff0000) >> 16;
            greenn = (clr & 0x0000ff00) >> 8;
            bluee = clr & 0x000000ff;

        }
    }
    System.out.println("Red Color value = " + redd);
    System.out.println("Green Color value = " + greenn);
    System.out.println("Blue Color value = " + bluee);

任何建议都会非常有用,谢谢: - )

2 个答案:

答案 0 :(得分:0)

最好使用Java的Color库来解析图像的RGB组件:

Color clr = new Color(image.getRGB());
redd = c.getRed();
greenn = c.getGreen();
bluee = c.getBlue();

你能看出这有帮助吗?

答案 1 :(得分:0)

您可以使用一些javafx features

import javafx.scene.image.Image;
import javafx.scene.image.PixelReader;
import javafx.scene.paint.Color;

public class Test {
    public static void main(String[] args) {
        Image image = new Image("image.png");
        PixelReader reader = image.getPixelReader();
        Color c = reader.getColor(154, 87);
        System.out.println(c);
    }
}