前言
Hutool 是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
推荐说明
针对awt中图片处理进行封装,这些封装包括:缩放、裁剪、转为黑白、加水印等操作。
最佳实践
引入pom
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<!-- 请查看最新版本 https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
<version>5.8.26</version>
</dependency>
scale缩放图片
提供两种重载方法:其中一个是按照长宽缩放,另一种是按照比例缩放。
ImgUtil.scale(
FileUtil.file("d:/face.jpg"),
FileUtil.
file("d:/face_result.jpg"),
0.5f//缩放比例
);
cut剪裁图片
ImgUtil.cut(
FileUtil.file("d:/face.jpg"),
FileUtil.
file("d:/face_result.jpg"),
new
Rectangle(200,200,100,100)//裁剪的矩形区域
);
slice按照行列剪裁切片(将图片分为20行和20列)
ImgUtil.slice(FileUtil.file("e:/test2.png"),FileUtil.
file("e:/dest/"), 10,10);
convert图片类型转换,支持GIF->JPG、GIF->PNG、PNG->JPG、PNG->GIF(X)、BMP->PNG等
ImgUtil.convert(FileUtil.file("e:/test2.png"),FileUtil.
file("e:/test2Convert.jpg"));
gray彩色转为黑白
ImgUtil.gray(FileUtil.file("d:/logo.png"),FileUtil.
file("d:/result.png"));
pressText添加文字水印
ImgUtil.pressText(//
FileUtil.file("e:/pic/face.jpg"), //
FileUtil.
file("e:/pic/test2_result.png"), //
"版权所有",Color.WHITE, //文字
new
Font("黑体",Font.BOLD, 100), //字体
0, //x坐标修正值。 默认在中间,偏移量相对于中间偏移
0, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
0.8f//透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
);
pressImage添加图片水印
ImgUtil.pressImage(
FileUtil.file("d:/picTest/1.jpg"),
FileUtil.
file("d:/picTest/dest.jpg"),
ImgUtil.
read(FileUtil.file("d:/picTest/1432613.jpg")), //水印图片
0, //x坐标修正值。 默认在中间,偏移量相对于中间偏移
0, //y坐标修正值。 默认在中间,偏移量相对于中间偏移
0.1f
);
rotate旋转图片
// 旋转180度
BufferedImage image = ImgUtil.rotate(ImageIO.read(FileUtil.file("e:/pic/366466.jpg")), 180);
ImgUtil.
write(image, FileUtil.file("e:/pic/result.png"));
flip水平翻转图片
ImgUtil.flip(FileUtil.file("d:/logo.png"),FileUtil.
file("d:/result.png"));
写在最后
给大家推荐一个非常完整的Java项目搭建的最佳实践,也是本文的源码出处,由大厂程序员&EasyExcel作者维护。
github地址:https://github.com/zhuangjiaju/easytools
gitee地址:https://gitee.com/zhuangjiaju/easytools