Java代码如何为一张图片生成缩略图呢?
下文笔者讲述使用java代码生成缩略图的方法分享,如下所示
生成缩略图的实现思路
方式1: 使用Thumbnailator即可生成缩略图 GitHub:https://github.com/coobird/thumbnailator Thumbnailator不依赖外部库,轻便高效,任何平台适用,支持缩放、旋转、截取,支持水印。 方式2: Imgscalr GitHub:https://github.com/rkalla/imgscalr 全部基于 Java 2D,不依赖外部库,轻便高效 任何平台适用,支持缩放、旋转、截取 但不支持水印下文笔者将使用Thumbnailator讲述具体的生成方法,如下所示
Thumbnailator使用示例
引入jar包
<dependency> <groupId>net.coobird</groupId> <artifactId>thumbnailator</artifactId> <version>0.4.8</version> </dependency>
指定大小缩放
//参数小且比例与原比例一样 //则按参数输出结果 Thumbnails.of(originalPic) .size(400, 300) .toFile(picturePath + "climb-up.size.400X300.jpeg"); //参数大且比例不等 //则按比例放大,取最小的值 Thumbnails.of(originalPic) .size(4400, 3400) .toFile(picturePath + "climb-up.size.4400X3300.jpeg"); //参数小且比例不等 //则按比例缩小,取最小的值 Thumbnails.of(originalPic) .size(200, 300) .toFile(picturePath + "climb-up.size.200X150.jpeg"); //不保持比例 //则按参数输出结果 Thumbnails.of(originalPic) .size(200, 300) .keepAspectRatio(false) .toFile(picturePath + "climb-up.size.notKeepRatio.200X300.jpeg"); //强制设置大小 //则按参数输出结果,与上个例子一样 Thumbnails.of(originalPic) .forceSize(200, 300) .toFile(picturePath + "climb-up.forceSize.200X300.jpeg");
按比例进行缩放
按比例进行缩放是指按宽和高的比例同时缩放//比例小于1,缩小 //宽和高同时缩小为原来的0.1倍 Thumbnails.of(originalPic) .scale(0.1f) .toFile(picturePath + "climb-up.scale.403X302.jpeg"); //比例大于1,放大 //宽和高同时放大为原来的1.1倍 Thumbnails.of(originalPic) .scale(1.1f) .toFile(picturePath + "climb-up.scale.4435X3326.jpeg");
按角度旋转
按角度旋转时,角度为正数时,顺时针;角度为负数时,逆时针Thumbnails.of(originalPic) .size(400,300) .rotate(45) .toFile(picturePath + "climb-up.rotate.45.jpeg");
添加水印
将水印放在右上角Thumbnails.of(originalPic) .size(2000,1500) .watermark(Positions.TOP_RIGHT, ImageIO.read( new File(picturePath + "pkslow.size.400X300.jpeg")), 0.5f) .toFile(picturePath + "climb-up.watermark.jpeg");
裁剪
Thumbnails.of(originalPic) .sourceRegion(Positions.TOP_RIGHT, 1800, 1800) .size(400, 400) .toFile(picturePath + "climb-up.crop.jpeg");
指定目录下的文件批量操作
Thumbnails.of(new File("/pictures/202303/").listFiles()) .size(400, 400) .toFiles(Rename.PREFIX_DOT_THUMBNAIL);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。