非常牛逼的一个开源图片框架
<dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency>
设置图片大小
注意:这个是批量的场景,也就是说你指定的是一个文件夹,他会将里面所有的图片都处理一下,所以生成的文件名不能随便自定义,只能在原来的基础上加上前缀。

Thumbnails.of(new File("C:\\Users\\65708\\Desktop\\test").listFiles()).size(640, 480).outputFormat("png").toFiles(Rename.PREFIX_DOT_THUMBNAIL);
设置图片旋转

for (int i : new int[] {0, 90, 180, 270, 45}) {Thumbnails.of(new File("coobird.png")).size(100, 100).rotate(i).toFile(new File("image-rotated-" + i + ".png"));}
创建一个带有旋转和水印的缩略图
Thumbnails.of(new File("original.jpg")).size(160, 160) //图片大小.rotate(90) // 旋转.watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f) // 水印.outputQuality(0.8) // 压缩质量.toFile(new File("image-with-watermark.jpg"));
在这个例子中,原始jpg的图像被调整大小,然后顺时钟旋转 90 度,然后水印被放置在右下角,这是半透明的,然后被保存到 image-with-watermark.jpg 与 80% 压缩质量设置。
创建一个缩略图并写入一个输出流
OutputStream os = ...;Thumbnails.of("large-picture.jpg").size(200, 200).outputFormat("png").toOutputStream(os);
按给定因子对图像进行缩放
BufferedImage originalImage = ImageIO.read(new File("original.png"));BufferedImage thumbnail = Thumbnails.of(originalImage).scale(0.25).asBufferedImage();
向特定目录写入缩略图
假如 原图是 1080*1440 ,设置成 200*200的话,则最终是 150*200。因为是等比例缩放的,
File destinationDir = new File("path/to/output");Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg").size(200, 200).toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);
文章转载自干货食堂,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




