公司的APP要做一个九格切图功能, 类似朋友圈那种一张大图放上去.
本来已经用Python三十行搞定. 结果被测试部的质疑我不会用Java写?? 一下子脾气就上来了, 用Java写了一个支持N格切图的功能. 现在想想真是后悔, 浪费生命. 在此给大家贡献出来
源码已上传至GitHub, 如果喜欢就点个星星啥的呗 https://github.com/HarrisonQi/GridCutter
思路:
- 读取图片
- 根据宫格数进行计算每个格子的X, Y坐标
- 对每一个进行裁剪
1. 读取图片
读取图片的方式千千万, 从本地或者从URL读取皆可
- 通过URL读取BufferedImage
// 需要对IOException进行处理, 一共两处, 在URL连接处和文件读取处
URL url = new URL("http://yihezo.cn/static/media/logo.9d4a5ade.png");
URLConnection connection = url.openConnection(); //打开连接
connection.setDoOutput(true);
connection.setReadTimeout(3000);// 设置超时时间(非必须)
BufferedImage img = ImageIO.read(connection.getInputStream());
- 通过本地文件路径读取BufferedImage
File file = new