【问题标题】:Round corners on images using Java and JAI使用 Java 和 JAI 对图像进行圆角处理
【发布时间】:2010-12-22 01:13:19
【问题描述】:

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

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

图片是来自 JAI 的 PlanarImage

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

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

以前有人做过吗?

【问题讨论】:

    标签: java image rounded-corners jai


    【解决方案1】:

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

    【讨论】:

    • 是的,我认为需要某种遮罩来“切掉”角落。但是怎么做呢?
    【解决方案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 表示圆角矩形的宽度和高度。
    • 最后两个参数表示在 角落。

    因此,绘制一个圆角矩形,其中仅包含您想要圆角的图像,然后覆盖或使用蒙版来获得所需的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 2020-11-07
      • 1970-01-01
      相关资源
      最近更新 更多