Использование setSample с WritableRaster - PullRequest
0 голосов
/ 06 декабря 2018

Я хочу удалить определенный цвет, и когда я устанавливаю

 wrres.setSample(x, y, 0, wrsrc.getSample(x, y, 0)) ;

, у меня нет ошибки, но когда я устанавливаю что-то еще, например wrres.setSample(x, y, 1, wrsrc.getSample(x, y, 1)) ;, тогда я получаю

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
    at java.awt.image.MultiPixelPackedSampleModel.getSample(MultiPixelPackedSampleModel.java:359)
    at java.awt.image.Raster.getSample(Raster.java:1648)

это дает мне одно и то же изображение (только что скопированное) BufferedImage imres = user_space(img,1);

int height = img.getHeight();
            int width = img.getWidth();

            BufferedImage imsrc = img; // The source image, RGBA
            BufferedImage imres = user_space(img,1);  // The resulting image, RGB or BGR 
            WritableRaster wrsrc = imsrc.getRaster() ;
            WritableRaster wrres = imres.getRaster() ;

            for (int y=0 ; y < img.getHeight() ; y++)
                for (int x=0 ; x < img.getWidth() ; x++)
                {
                    wrres.setSample(x, y, 0, wrsrc.getSample(x, y, 0)) ;
                    wrres.setSample(x, y, 1, wrsrc.getSample(x, y, 1)) ;
                    wrres.setSample(x, y, 2, wrsrc.getSample(x, y, 2)) ;
                }
    return 
     new BufferedImage(imsrc.getColorModel(),wrres,imsrc.getColorModel().isAlphaPremultiplied(), null);
        }

Как использовать setSample для установки разных цветов не только черного и белого (полоса равна 0) '

Я не хочу использовать getRGB из BufferedImage

...