我想制作一个圆角的图像.图像将来自输入,我将使其圆角然后保存.我使用纯java.我怎样才能做到这一点?我需要一个像这样的功能
public void makeRoundedCorner(Image image, File outputFile){
.....
}
Run Code Online (Sandbox Code Playgroud)

编辑:添加了图像以供参考.
在这个自定义边框类中,我定义了一个RoundRectangle2D形状.此对象用于绘制边框.不幸的是,由于之前调用的paint方法,将剪辑设置为形状没有效果; 即使我发出一个.因此,组件将在其边界外部绘制,这是可以理解的不合需要的.JComponentpaintComponentpaintBorderGraphicsRoundRectangle2Drepaint
所以,我想知道:如何让组件专门在自定义边框内绘制?
我考虑的一种方法是Border在paintComponent方法中获取组件的对象.然后将此对象转换为适当的类,其中我定义将影响剪辑的参数.但这似乎不是一个"声音"设计.
编辑 -
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.RenderingHints;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.border.AbstractBorder;
class JRoundedCornerBorder extends AbstractBorder
{
private static final long serialVersionUID = 7644739936531926341L;
private static final int THICKNESS = 2;
JRoundedCornerBorder()
{
super();
}
@Override
public void paintBorder(Component c, Graphics g, int x, …Run Code Online (Sandbox Code Playgroud) 我正在研究Java中的GUI,我正试图给我的边界提供圆角.
JPanel recentProjectsPanel = new JPanel();
recentProjectsPanel.setLayout(new BorderLayout());
recentProjectsPanel.setBackground(Color.red);
recentProjectsPanel.setBorder(new LineBorder(Color.green, 15, true));
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出(不介意颜色):

为什么我会在角落里看到这些红色条纹?有任何解决这个问题的方法吗?