简介
Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。
支持的处理操作:
- 图片缩放
- 区域裁剪
- 水印
- 旋转
- 保持比例
图像处理
1.Thumbnailator对图片进行指定尺寸的压缩
String result = "src/main/resources/images/";
Thumbnails.of(result + "lixin.jpg").size(200, 300).toFile(result + "image_200x300.jpg");
2.Thumbnailator对图片进行指定比例的压缩。
String result = "src/main/resources/images/";
Thumbnails.of(result + "lixin.jpg").scale(0.5f).toFile(result + "image_0.5f.jpg");
3.Thumbnailator对图片进行旋转。
String result = "src/main/resources/images/";
Thumbnails.of(result + "lixin.jpg").scale(1.0f).rotate(180).toFile(result + "image_r180.jpg");
4.Thumbnailator对图片进行格式转换。
String result = "src/main/resources/images/";
Thumbnails.of(result + "lixin.jpg").scale(1.0f).outputFormat("png").toFile(result + "image_lixin.png");
5.Thumbnailator对图片进行剪裁。
String result = "src/main/resources/images/";
Thumbnails.of(result + "lixin.jpg").scale(1.0f).sourceRegion(Positions.CENTER, 400, 400).toFile(result + "image_center.png");
Thumbnails.of(result + "lixin.jpg").sourceRegion(100, 100, 100, 100).scale(1.0f).toFile(result + "image_100_4.jpg");
6.Thumbnailator对图片进行加水印操作。
String result = "src/main/resources/images/";
// watermark 参数 1.位置 2.水印图片 3.透明度
Thumbnails.of(result + "lixin.jpg").scale(1.0f).watermark(Positions.CENTER, ImageIO.read(new File(result + "warter.jpg")), 0.25f).toFile(result + "image_warter.jpg");
7.Thumbnailator对图片进行加文字水印操作。
String result = "src/main/resources/images/";
BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);
Graphics2D g = bi.createGraphics();
g.setColor(Color.LIGHT_GRAY);
g.drawRect(0, 0, 10, 10);
char[] data = "小仙女".toCharArray();
g.drawChars(data, 0, data.length, 5, 32);
// watermark 参数 1.位置 2.水印 3.透明度
Thumbnails.of(result + "lixin.jpg").scale(1.0f).watermark(Positions.CENTER, bi, 1.0f).toFile(result + "image_小仙女.jpg");