Как я могу установить пиксель в Shape с определенным RGB? - PullRequest
0 голосов
/ 22 июня 2011

Например, у меня есть многоугольник, и мне нужно заполнить его конкретным RGB.Как мне это сделать?Я пытался преобразовать фигуру в изображение, но затем я не могу установить пиксель с помощью метода setRGB из BufferedImage (цвет пикселя не изменился!):

...
    Rectangle2D r = pgnProjection.getBounds();
    BufferedImage rectBuffIm = new BufferedImage(r.getBounds().width, r.getBounds().height, 
                                        BufferedImage.TYPE_BYTE_BINARY);
    for(int i = rectBuffIm.getWidth()/2, j = rectBuffIm.getHeight()/2; rectBuffIm.getWidth()>i && rectBuffIm.getHeight()>j; j++, i++)
        rectBuffIm.setRGB(i, j, rgb);

    Graphics2D gr2D = rectBuffIm.createGraphics();
    gr2D.translate(-pgnProjection.getBounds().x, -pgnProjection.getBounds().y);
    gr2D.draw(pgnProjection);
    gr2D.dispose();
...

Кроме того, фон изображения был черным, и установитьпиксели всегда были белыми.

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Позвоните Graphics.setClip(Shape) с последующими операциями рисования. Смотрите здесь пример .

image

0 голосов
/ 22 июня 2011
...