thumbnailator是一个开源的图片工具包,提供诸如图片缩放、裁剪、旋转、加水印等一些列功能,简单好用
项目地址:https://github.com/coobird/thumbnailator
最新版本为 0.4.8:
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
package com.sean;
import net.coobird.thumbnailator.Thumbnailator;
import net.coobird.thumbnailator.Thumbnails;
import net.coobird.thumbnailator.builders.BufferedImageBuilder;
import net.coobird.thumbnailator.geometry.Position;
import net.coobird.thumbnailator.geometry.Positions;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* Created by seanzou on 2017/3/31.
*/
public class ImageUtil {
public static void main(String[] args) throws Exception {
File file = new File("d:\\in.jpg");
// 转换图片格式为png
Thumbnails.of(file)
.scale(1)
.outputFormat("png")
.toFile(new File("d:\\out.png"));
// 图片放大2倍,像素由700*1050变为1400*2100
Thumbnails.of(file)
.scale(2)
.toFile(new File("d:\\magnify.jpg"));
// 图片缩小至1/4,像素由700*1050变为175*263
Thumbnails.of(file)
.scale(0.25)
.toFile(new File("d:\\shrink.jpg"));
// 图片剪裁, 横向偏移量,纵向偏移量,宽,高
Thumbnails.of(file)
.sourceRegion(100, 100, 550, 550)
.scale(1)
.toFile(new File("d:\\head.jpg"));
// 旋转, 正数顺时针旋转,负数逆时针旋转
Thumbnails.of(file)
.rotate(-90)
.size(400,400)
.keepAspectRatio(false) // 忽略原图比例,强制转换为size设置的像素
.toFile(new File("d:\\rotate.jpg"));
// 创建水印图片
// 后面的两个参数用来校验水印图片的像素,所以必须和水印的像素保持一致
// 否则将会导致水印的添加失败
BufferedImage image = Thumbnailator.createThumbnail(
new File("d:\\wm.jpg"), 300, 300);
// 添加水印
FileInputStream in = new FileInputStream(file);
FileOutputStream out = new FileOutputStream(new File("d:\\watermark.jpg"));
Thumbnails.of(in)
.watermark(Positions.CENTER, image , 0.5f) // 水印位置,水印图片,透明度
.scale(1)
.toOutputStream(out);
}
}