Имам 3 изображения в сива скала, които искам да оцветя, зададох подобен въпрос миналата седмица и се възползвах от съвета там, имам кода по-долу, който чете RGB стойностите за всеки пиксел в изображението. Искам да направя това за всяко отделно изображение, т.е. 1-во изображение прочете стойност на червени пиксели, 2-ро изображение прочете стойност на сини пиксели и 3-то изображение прочете стойност на зелени пиксели и създам ново изображение от това. Опитах да повторя кода 3 пъти, но изглеждаше, че го прилага към един пиксел и продължава да го повтаря, но не можах да разбера защо; По същество копирах и поставих кода 3 пъти, но съм сигурен, че има по-кратък и по-лесен начин, но не съм сигурен какъв!
Чета изображението, като използвам следното:
public static void main(final String args[])
throws IOException
{
File file = new File("src/resources/rgb.jpg");
BufferedImage src = ImageIO.read(file);
BufferedImage image = toBufferedImage(src);
save(image, "png");
}
private void img1(BufferedImage image, BufferedImage src) {
for (int x = 0; x < image.getWidth(); x++) {
for (int y = 0; y < image.getHeight(); y++) {
int clr = src.getRGB(x, y);
int red = (clr & 0x00ff0000) >> 16;
//int green = (clr & 0x0000ff00) >> 8;
//int blue = clr & 0x000000ff;
}
}
}
Така че по същество трябва да повторя кода 3 пъти и след това да създам ново изображение от резултата. Просто се чудя дали някой може да помогне?
Благодаря предварително