java - 如何使用特定的 RGB 设置形状中的像素?

标签 java set rgb shapes

例如,我有一个多边形,我需要用特定的 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();
...

此外,图像背景为黑色,并且设置的像素始终为白色。

最佳答案

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

关于java - 如何使用特定的 RGB 设置形状中的像素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436886/

相关文章:

java - 如何在 CompletableFuture 中保留 slf4j MDC 日志上下文?

java - 在大字符串中搜索一组关键字

java - 使用 Metro 客户端缓冲传入的 SOAP 消息时出错

java - 如何为每个样本 32 位、3 个样本图像数据创建 BufferedImage

Java 重新实现 ==

c++ - boost::variant 的树状容器——有什么缺点吗?

java - 如何初始化和访问集合对象数组

c++ - C++ STL 集 : Can comparison function be a member function of a class? 的比较函数

c++ - FFMPEG:在 h264rgb/libx264rgb 错误中解码视频

c# - 从 BitMap 提取原始 RGB 数据并将其写入文件的最简单方法是什么?