使用 Java 和 JAI 对图像进行圆角处理
-
22-07-2019 - |
题
我们正在使用 JAI (https://jai-imageio.dev.java.net/)在 Java 中缩放和裁剪图像。我们想在图像上创建圆角。我们该怎么做呢?
图像为 JPG 和 PNG。我认为使用 JPG 更容易做到这一点?
该图像是来自 JAI 的 PlanarImage
PlanarImage src = JAI.create(...,...);
可以转换为 java.awt.Graphics 对象
以前有人这样做过吗?
解决方案
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 表示圆角矩形的宽度和高度。
- 最后两个参数表示在 角落。
因此,绘制一个圆角矩形,其中仅包含您想要圆角的图像,然后叠加或使用蒙版以获得所需的效果。
其他提示
什么阻止您绘制你喜欢的任何角落上的Graphics对象从图像获得的?我真的不知道你的“圆角”应该是什么样子,但你可以对图形的所有合理的喷漆操作对象。
不隶属于 StackOverflow