如何使用特定的RGB在Shape中设置像素?

时间:2011-06-22 08:18:41

标签: java set rgb shape

例如,我有一个多边形,我需要用特定的RGB填充它。我该怎么做?我试图将形状转换为图像,但是我无法使用BufferedImage中的setRGB方法设置像素(像素颜色没有变化!):

...
    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 个答案:

答案 0 :(得分:1)

调用Graphics.setClip(Shape),然后进行绘图操作。请参阅此处an example

答案 1 :(得分:0)