图片处理工具类--ImageUtils
public class ImageUtils {
/**
* 指定大小缩放 若图片横比width小,高比height小,放大
* 若图片横比width小,高比height大,高缩小到height,图片比例不变
* 若图片横比width大,高比height小,横缩小到width,图片比例不变
* 若图片横比width大,高比height大,图片按比例缩小,横为width或高为height
*
* @param resource 源文件路径
* @param width 宽
* @param height 高
* @param tofile 生成文件路径
*/
public static void changeSize(String resource, int width, int height, String tofile) {
try {
Thumbnails.of(resource).size(width, height).toFile(tofile);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 指定比例缩放 scale(),参数小于1,缩小;大于1,放大
*
* @param resource 源文件路径
* @param scale 指定比例
* @param tofile 生成文件路径
*/
public static void changeScale(String resource, double scale, String tofile) {
try {
Thumbnails.of(resource).scale(scale).toFile(tofile);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 添加水印 watermark(位置,水印,透明度)
*
* @param resource 源文件路径
* @param p 水印位置
* @param shuiyin 水印文件路径
* @param opacity 水印透明度
* @param tofile 生成文件路径
*/
public static void watermark(String resource, Positions p, String shuiyin, float opacity, String tofile) {
try {
Thumbnails.of(resource).scale(1).watermark(p, ImageIO.read(new File(shuiyin)), opacity).toFile(tofile);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 图片旋转 rotate(度数),顺时针旋转
*
* @param resource 源文件路径
* @param rotate 旋转度数
* @param tofile 生成文件路径
*/
public static void rotate(String resource, double rotate, String tofile) {
try {
Thumbnails.of(resource).scale(1).rotate(rotate).toFile(tofile);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 图片裁剪 sourceRegion()有多种构造方法,示例使用的是sourceRegion(裁剪位置,宽,高)
*
* @param resource 源文件路径
* @param p 裁剪位置
* @param width 裁剪区域宽
* @param height 裁剪区域高
* @param tofile 生成文件路径
*/
public static void region(String resource, Positions p, int width, int height, String tofile) {
try {
Thumbnails.of(resource).scale(1).sourceRegion(p, width, height).toFile(tofile);
} catch (IOException e) {
e.printStackTrace();
}
}
}