https://github.com/nackily/imglib
轻量级的 JAVA 图像处理库
同 Thumbnailator 一样,imglib 为开发者屏蔽了复杂的 I/O 操作,以及无需再通过 Graphics2D 对象来手动操作图像,imglib 已经替您完成了 所有这些工作。imglib 的链式 API 使得你可以将一个复杂的图像处理任务逐步的配置并执行。
例如,为用户创建一个 hash 图像,头像点阵设定为 8px*8px,头像大小为 300px*300px,并增加一个边距为 20px 的边框。该图像生成任务,可以通过 以下操作完成:
ImagePipes.ofEmptySource()
.register(new HashImageGenerator.Builder("Tracy") // hash 图像生成器
.gridVerticalNum(8) // 水平方向的点阵数量
.bgColor(ColorUtils.of(240, 240, 240)) // 背景色
.fgColor(ColorUtils.of(50, 150, 50)) // 前景色
.build())
.toThumbnails() // 转换为 Thumbnails
.addFilter(new HighQualityExpandHandler.Builder() // 图像无损放大处理器
.finalWidth(300) // 图像的宽度
.keepAspectRatio(true) // 保持长宽比例
.build())
.addFilter(new BorderHandler.Builder() // 边框处理器
.fillColor(ColorUtils.of(200, 200, 200)) // 边框填充色
.vMargins(20) // 垂直方向的边距
.hMargins(20) // 水平方向的边距
.build())
.scale(1.0)
.toFile(".../avatar.png");
执行上面的代码片段,我们将得到如下的用户头像。
https://github.com/nackily/imglib/blob/master/docs/Examples.md // 更多的 examples