Thumbnailator java图片压缩,加水印,批量生成缩略图
地址:http://code.google.com/p/thumbnailator/
1、指定大小进行缩放
//size(宽度, 高度)
<span style="color: #008000;">/*</span><span style="color: #008000;"> </br> * 若图片横比200小,高比300小,不变 </br> * 若图片横比200小,高比300大,高缩小到300,图片比例不变 </br> * 若图片横比200大,高比300小,横缩小到200,图片比例不变 </br> * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300 </br> </span><span style="color: #008000;">*/</span><span style="color: #000000;"> </br> Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">) </br> .size(</span>200, 300<span style="color: #000000;">) </br> .toFile(</span>"c:/a380_200x300.jpg"<span style="color: #000000;">); </br></br> Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">) </br> .size(</span>2560, 2048<span style="color: #000000;">) </br> .toFile(</span>"c:/a380_2560x2048.jpg"); </pre>
2、按照比例进行缩放
Java代码 收藏代码
</span><span style="color: #008000;">//</span><span style="color: #008000;">scale(比例) </span></br>
Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">) </br>
.scale(</span>0.25f<span style="color: #000000;">) </br>
.toFile(</span>"c:/a380_25%.jpg"<span style="color: #000000;">); </br>
Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">) </br>
.scale(</span>1.10f<span style="color: #000000;">) </br>
.toFile(</span>"c:/a380_110%.jpg"); </pre>
3、不按照比例,指定大小进行缩放
//keepAspectRatio(false) 默认是按照比例缩放的
Thumbnails.of("images/a380_1280x1024.jpg")
.size(200, 200)
.keepAspectRatio(false)
.toFile("c:/a380_200x200.jpg")
4、旋转
//rotate(角度),正数:顺时针 负数:逆时针
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.rotate(90)
.toFile("c:/a380_rotate+90.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.rotate(-90)
.toFile("c:/a380_rotate-90.jpg");
5、水印
//watermark(位置,水印图,透明度)
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("images/watermark.png")), 0.5f)
.outputQuality(0.8f)
.toFile("c:/a380_watermark_bottom_right.jpg");
Thumbnails.of(</span>"images/a380_1280x1024.jpg"<span style="color: #000000;">) </br> .size(</span>1280, 1024<span style="color: #000000;">) </br> .watermark(Positions.CENTER, ImageIO.read(</span><span style="color: #0000ff;">new</span> File("images/watermark.png")), 0.5f<span style="color: #000000;">) </br> .outputQuality(</span>0.8f<span style="color: #000000;">) </br> .toFile(</span>"c:/a380_watermark_center.jpg"); </pre>
6、裁剪
//sourceRegion()
</span><span style="color: #008000;">//</span><span style="color: #008000;">图片中心400*400的区域 </span></br> Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">) </br> .sourceRegion(Positions.CENTER, </span>400,400<span style="color: #000000;">) </br> .size(</span>200, 200<span style="color: #000000;">) </br> .keepAspectRatio(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">) </br> .toFile(</span>"c:/a380_region_center.jpg"<span style="color: #000000;">); </br></br> </span><span style="color: #008000;">//</span><span style="color: #008000;">图片右下400*400的区域 </span></br> Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">) </br> .sourceRegion(Positions.BOTTOM_RIGHT, </span>400,400<span style="color: #000000;">) </br> .size(</span>200, 200<span style="color: #000000;">) </br> .keepAspectRatio(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">) </br> .toFile(</span>"c:/a380_region_bootom_right.jpg"<span style="color: #000000;">); </br></br> </span><span style="color: #008000;">//</span><span style="color: #008000;">指定坐标 </span></br> Thumbnails.of("images/a380_1280x1024.jpg"<span style="color: #000000;">) </br> .sourceRegion(</span>600, 500, 400, 400<span style="color: #000000;">) </br> .size(</span>200, 200<span style="color: #000000;">) </br> .keepAspectRatio(</span><span style="color: #0000ff;">false</span><span style="color: #000000;">) </br> .toFile(</span>"c:/a380_region_coord.jpg"); </pre>
7、转化图像格式
//outputFormat(图像格式)
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.outputFormat("png")
.toFile("c:/a380_1280x1024.png");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.outputFormat("gif")
.toFile("c:/a380_1280x1024.gif");
8、输出到OutputStream
//toOutputStream(流对象)
OutputStream os = new FileOutputStream("c:/a380_1280x1024_OutputStream.png");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.toOutputStream(os);
9、输出到BufferedImage
//asBufferedImage() 返回BufferedImage
BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280, 1024)
.asBufferedImage();
ImageIO.write(thumbnail, "jpg", new File("c:/a380_1280x1024_BufferedImage.jpg"));