博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Thumbnailator java图片压缩,加水印,批量生成缩略图
阅读量:6271 次
发布时间:2019-06-22

本文共 3591 字,大约阅读时间需要 11 分钟。

hot3.png

依赖pom

net.coobird
thumbnailator
0.4.8

地址:

1、指定大小进行缩放

//size(宽度, 高度)            /*        * 若图片横比200小,高比300小,不变        * 若图片横比200小,高比300大,高缩小到300,图片比例不变        * 若图片横比200大,高比300小,横缩小到200,图片比例不变        * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300        */       Thumbnails.of("images/a380_1280x1024.jpg")               .size(200, 300)              .toFile("c:/a380_200x300.jpg");            Thumbnails.of("images/a380_1280x1024.jpg")               .size(2560, 2048)               .toFile("c:/a380_2560x2048.jpg");

2、按照比例进行缩放

Java代码  收藏代码    //scale(比例)      Thumbnails.of("images/a380_1280x1024.jpg")               .scale(0.25f)              .toFile("c:/a380_25%.jpg");            Thumbnails.of("images/a380_1280x1024.jpg")               .scale(1.10f)              .toFile("c:/a380_110%.jpg");

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("images/a380_1280x1024.jpg")               .size(1280, 1024)              .watermark(Positions.CENTER, ImageIO.read(new File("images/watermark.png")), 0.5f)               .outputQuality(0.8f)               .toFile("c:/a380_watermark_center.jpg");

6、裁剪

//sourceRegion()            //图片中心400*400的区域      Thumbnails.of("images/a380_1280x1024.jpg")              .sourceRegion(Positions.CENTER, 400,400)              .size(200, 200)              .keepAspectRatio(false)               .toFile("c:/a380_region_center.jpg");            //图片右下400*400的区域      Thumbnails.of("images/a380_1280x1024.jpg")              .sourceRegion(Positions.BOTTOM_RIGHT, 400,400)              .size(200, 200)              .keepAspectRatio(false)               .toFile("c:/a380_region_bootom_right.jpg");            //指定坐标      Thumbnails.of("images/a380_1280x1024.jpg")              .sourceRegion(600, 500, 400, 400)              .size(200, 200)              .keepAspectRatio(false)               .toFile("c:/a380_region_coord.jpg");

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"));

转载于:https://my.oschina.net/ydsakyclguozi/blog/481495

你可能感兴趣的文章
精度 Precision
查看>>
Android——4.2 - 3G移植之路之 APN (五)
查看>>
Linux_DHCP服务搭建
查看>>
[SilverLight]DataGrid实现批量输入(like Excel)(补充)
查看>>
秋式广告杀手:广告拦截原理与杀手组织
查看>>
翻译 | 摆脱浏览器限制的JavaScript
查看>>
闲扯下午引爆乌云社区“盗窃”乌云币事件
查看>>
02@在类的头文件中尽量少引入其他头文件
查看>>
JAVA IO BIO NIO AIO
查看>>
input checkbox 复选框大小修改
查看>>
网吧维护工具
查看>>
BOOT.INI文件参数
查看>>
vmstat详解
查看>>
新年第一镖
查看>>
unbtu使用笔记
查看>>
MaxCompute 学习计划(一)
查看>>
OEA 中 WPF 树型表格虚拟化设计方案
查看>>
Android程序开发初级教程(一) 开始 Hello Android
查看>>
使用Gradle打RPM包
查看>>
“我意识到”的意义
查看>>