使用Java和JAI图像圆角(Round corners on images using Java

2019-10-18 12:13发布

我们使用JAI( https://jai-imageio.dev.java.net/ )扩展和Java中裁剪图像。 我们希望我们的图像创建圆角。 我们如何做到这一点?

这些图像是JPG和PNG。 我觉得它更容易使用JPG格式来做到这一点?

该图像是从一个JAI PlanarImage

PlanarImage src = JAI.create(...,...);

这可以转化为一个java.awt.Graphics对象

有没有人这样做呢?

Answer 1:

PNG支持透明alpha通道,但JPG没有。 因此,对于JPG你也必须选择一种颜色来绘制矩形的圆角的“隐形”的一部分。

有一类java.awt.geom.RoundRectangle2D可做到这一点:

public void paint(Graphics g) {
    Graphics2D g2d = (Graphics2D) g;
    RoundRectangle2D rr = new RoundRectangle2D.Float(50, 50, 200, 100, 10, 10);
    g2d.draw(rr);
}

类RoundRectangle2D的浮法()方法需要六个参数:

  • 前两个代表左上角的位置。
  • 参数3和4表示的圆角矩形的宽度和高度。
  • 最后两个参数代表在弯道中所描绘的圆弧的宽度和高度。

因此,绘制一个圆角矩形,将只包含你想有圆角的图像,然后要么重叠或使用掩模以取得预期的效果。



Answer 2:

是什么阻止你画你喜欢的任何角落到Graphics对象从图像获得的? 我真的不知道你的“圆角”应该是什么样子,但你可以对图形的所有合理的喷漆操作对象。



文章来源: Round corners on images using Java and JAI