private BufferedImage outputImg;
for(int y = 0; y < inputImg.getHeight(); ++y)
{
for(int x = 0; x < inputImg.getWidth(); ++x)
{
Color originPixel = new Color(inputImg.getRGB(x, y));
double X = 0.412453 * originPixel.getRed() + 0.35758 * originPixel.getGreen() + 0.180423 * originPixel.getBlue();
double Y = 0.212671 * originPixel.getRed() + 0.71516 * originPixel.getGreen() + 0.072169 * originPixel.getBlue();
double Z = 0.019334 * originPixel.getRed() + 0.119193 * originPixel.getGreen() + 0.950227 * originPixel.getBlue();
//???
}
}
В функции преобразования цветового пространства я получаю RGB-пиксель и преобразовываю его в XYZ-пиксель. Но как установить этот результат в outputImg
?
Среди BufferedImage
метод я вижу только setRGB(int r, int g, int b)
Как установить пиксель XYZ-ColorSpace в BufferedImage?
Что вы пытаетесь сделать именно? – immibis
Да, у меня есть задача: конвертировать изображение из цветового пространства RGB в другое цветовое пространство (например, к XYZ). Использование формул – Dmitry
Насколько я знаю, BufferedImage хранит изображения в RGB. если бы был setXYZ, все, что он сделал бы, это преобразовать обратно в RGB, а затем сохранить RGB. – immibis