使用Java和JAI在图像上的圆角

时间:2009-12-01 14:49:22

标签: java image rounded-corners jai

我们正在使用JAI(https://jai-imageio.dev.java.net/)来缩放和裁剪Java中的图像。我们想在我们的图像上创建圆角。我们怎么做?

图像是JPG和PNG。我认为使用JPG更容易做到这一点?

图像是来自JAI的PlanarImage

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

可以转换为java.awt.Graphics对象

以前有人这样做过吗?

2 个答案:

答案 0 :(得分:2)

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类的Float()方法有六个参数:

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

因此,绘制一个圆角矩形,只包含想要圆角的图像,然后叠加或使用遮罩来获得所需的效果。

答案 1 :(得分:0)

什么阻止你将你喜欢的任何角落绘制到从Image获得的Graphics对象上?我不确定你的“圆角”应该是什么样子,但你可以在Graphics对象上执行所有合理的绘制操作。