我正在尝试使用以下代码来提取图像中的颜色。我使用以下代码,但无法获取颜色。任何人都可以有更好的解决方案或请告诉我的代码有什么问题。
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);
任何建议都会非常有用,谢谢: - )
答案 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);
}
}