外面填圆,里面变透明
Filling A Circle On The Outside, Inside Becomes Transparent
好吧,Whosebug,我需要你在绘图方面的帮助。
我在这方面仅限于 Graphics2D,并且想知道如何才能实现具有两层的图像。
第一层 - Color.white
第二层 - Color.red
现在我想要实现的是画一个圆让自己看到第一层而第二层还是红色的。 不是简单的画一个圆就是白的
这是我的意思的图片
我遇到了一些以前的代码,但它没有用,所以我希望有人有 Graphics2D 的知识来实现这个。
这是代码,剩下的交给你。
BufferedImage img = new BufferedImage(sizeX, sizeY, BufferedImage.TYPE_INT_RGBA);
Graphics2D g = img.createGraphics();
int ovalX = 50;
int ovalY = 70;
int ovalRadius = 20;
/* Draw the grey rectangle */
g.setColor(Color.GRAY);
g.fillRect(0, 0, sizeX, sizeY);
/* Enable Anti-Alias */
g.setRenderingHint(RenderingHints.HINT_ANTIALIAS, RenderingHints.VALUE_ANTIALIAS_ON);
/* Clear the circle away */
g.setComposite(AlphaComposite.CLEAR, 1.0f);
g.fillOval(ovalX - ovalRadius, ovalY - ovalRadius, 2 * ovalRadius, 2 * ovalRadius);
g.dispose();
您可以使用 Area
和 Graphics.setClip
Area a = new Area(yourRect);
a.subtract(new Area(yourCircle));
g.setClip(a);
好吧,Whosebug,我需要你在绘图方面的帮助。
我在这方面仅限于 Graphics2D,并且想知道如何才能实现具有两层的图像。
第一层 - Color.white
第二层 - Color.red
现在我想要实现的是画一个圆让自己看到第一层而第二层还是红色的。 不是简单的画一个圆就是白的
这是我的意思的图片
我遇到了一些以前的代码,但它没有用,所以我希望有人有 Graphics2D 的知识来实现这个。
这是代码,剩下的交给你。
BufferedImage img = new BufferedImage(sizeX, sizeY, BufferedImage.TYPE_INT_RGBA);
Graphics2D g = img.createGraphics();
int ovalX = 50;
int ovalY = 70;
int ovalRadius = 20;
/* Draw the grey rectangle */
g.setColor(Color.GRAY);
g.fillRect(0, 0, sizeX, sizeY);
/* Enable Anti-Alias */
g.setRenderingHint(RenderingHints.HINT_ANTIALIAS, RenderingHints.VALUE_ANTIALIAS_ON);
/* Clear the circle away */
g.setComposite(AlphaComposite.CLEAR, 1.0f);
g.fillOval(ovalX - ovalRadius, ovalY - ovalRadius, 2 * ovalRadius, 2 * ovalRadius);
g.dispose();
您可以使用 Area
和 Graphics.setClip
Area a = new Area(yourRect);
a.subtract(new Area(yourCircle));
g.setClip(a);