使用 Java 和 JAI 对图像进行圆角处理
我们正在使用 JAI (https://jai-imageio.dev.java.net/) 在 Java 中缩放和裁剪图像。我们想在图像上创建圆角。我们该怎么做呢?
图像为 JPG 和 PNG。我认为使用 JPG 来完成此操作会更容易吗?
该图像是来自 JAI 的 PlanarImage
PlanarImage src = JAI.create(...,...);
,可以转换为 java.awt.Graphics 对象
以前有人这样做过吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
PNG 支持透明 Alpha 通道,但 JPG 不支持。因此,对于 JPG,您还必须选择一种颜色来绘制圆角矩形的“不可见”部分。
有一个类 java.awt.geom.RoundRectangle2D 可以用来执行此操作:
RoundRectangle2D 类的 Float() 方法有六个参数:
角落。
因此,绘制一个圆角矩形,其中仅包含您想要圆角的图像,然后覆盖或使用蒙版以获得所需的效果。
PNG supports a transparent alpha channel, but JPG does not. So, for JPG you would have to also pick a color to paint the "invisible" part of the rectangle for the rounded corners.
There is a class
java.awt.geom.RoundRectangle2D
available to do this:The Float() method of the class RoundRectangle2D takes six arguments:
corners.
So, draw a rounded rectangle that will just contain the image you want to have rounded corners and then either overlay or use a mask to get the desired effect.
是什么阻止您在从 Image 获得的 Graphics 对象上绘制您喜欢的任何角?我不太确定你的“圆角”应该是什么样子,但你可以在 Graphics 对象上执行所有合理的绘制操作。
What prevents you from drawing whatever corners you like onto the Graphics object obtained from the Image? I'm not really sure what your "round corners" are supposed to look like, but you can perform all reasonable paint operations on the Graphics object.