Как я могу извлечь цвета на изображении с помощью Java?
Я пытаюсь с помощью следующего кода, чтобы извлечь цвета в изображении. Я использую следующий код, но он не может получить цвета. Может кто-нибудь есть лучшее решение или, пожалуйста, скажите, что не так в моем коде.
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 ответа
Возможно, вам лучше использовать библиотеку цветов Java для анализа компонентов RGB изображения:
Color clr = new Color(image.getRGB());
redd = c.getRed();
greenn = c.getGreen();
bluee = c.getBlue();
Вы видите, помогает ли это?
Вы можете использовать некоторые 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);
}
}