在改变用提示绘制的图像的颜色后具有伪影

时间:2017-05-05 14:46:26

标签: java bufferedimage java-2d antialiasing

我创建了一个画笔(BufferedImage)如下(代码1)......

g.setPaint(Color.BLACK);
g.fillArc(0, 0, w, w, 0, 360);

然后我使用RGBImageFilter(代码2)改变该图像的颜色......

public int filterRGB(int x, int y, int rgb) {
    int alpha = rgb & 0xFF000000;
    int newrgb = (color.getRGB() & 0x00FFFFFF) | alpha;
    return newrgb;
}

现在,如果我将鼠标拖到画布上,它将在每个鼠标点上绘制画笔图像(代码3)......

g2.drawImage(brush.image, trop, (int) (x - offset), (int) (y - offset));

上面的代码工作正常。

但是如果我向代码1添加渲染提示......

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setPaint(Color.BLACK);
g.fillArc(0, 0, w, w, 0, 360);

我在圆圈边缘得到一个神器,如下面所示(忽略上面和下面的线条)......

enter image description here

任何解决此问题的方法仍然使用抗锯齿功能?

谢谢!

0 个答案:

没有答案