gpt4 book ai didi

java - 绘制圆角矩形

转载 作者:行者123 更新时间:2023-12-01 14:42:40 34 4
gpt4 key购买 nike

我想将下面的示例变成使用 RoundedRectangles 而不是普通矩形的图中,我知道剪切框有可能。但我真的不知道它们如何适用于我当前的情况,因为我当前没有使用 g2d.fillXXX() 函数。

图片: example http://img827.imageshack.us/img827/6048/cardbackgroundcut.jpg

代码:

private void createImage() {
bufferedImage = new BufferedImage(dimension.width, dimension.height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = (Graphics2D)bufferedImage.createGraphics();

g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

int colorRed = 128;
int colorGreen = 0;
int colorBlue = 128;

for (int x = 0; x < dimension.width; x++) {
for (int y = 0; y < dimension.height; y++) {
int dx = Math.min(x, dimension.width - x);
int dy = Math.min(y, dimension.height - y);
if (dx < 10 || dy < 10) {
g2d.setColor(new Color(colorRed, colorGreen, colorBlue, 255 - Math.min(dx, dy)));
g2d.drawLine(x, y, x, y);
}
else {
g2d.setColor(new Color(colorRed, colorGreen, colorBlue, 192 - Math.min(dx, dy)));
g2d.drawLine(x, y, x, y);
}
}
}
}

所以基本上我希望图像的外边缘和内边缘都有一个圆角矩形,同时防止颜色的变化。

有什么线索可以实现这一点吗?

问候。

最佳答案

您可以使用RoundRectangle和 4(转动)rectangles将所有形状转换为 Area的并使用

area.exclusiveOr(ohterArea)

获取 4 个独立(不同梯度)部分的方法。然后使用GradientPaint将这些部件一一绘制。类将所有这 4 个部分绘制(填充)为所需的渐变。

最后一步,将油漆设置回静态颜色,然后绘制旧的 RoundedRectangle (这样就可以获得边缘)

关于java - 绘制圆角矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15788251/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com