上篇文章写的是适用于多线程情况下,接下来我们使用单线程情况下的
- 入参
参数 | 类型 | 必传(否) | 描述 |
---|---|---|---|
inputStream | InputStream | 是 | 读入流 |
fileName | String | 是 | 文件名 |
x | Integer | 是 | 起始点 |
y | Integer | 是 | 起始点 |
w | Integer | 是 | 宽 |
h | Integer | 是 | 高 |
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Thumbnails.of(inputStream)
.sourceRegion(Math.round(x), Math.round(y), Math.round(w), Math.round(h))
.size(Math.round(w), Math.round(h))
.outputFormat(PhotoFileUtil.getSuffixNameWithOutPoint(disposition.getFileName()))
.toOutputStream(bos);
如果想要压缩
//按指定大小把图片进行缩和放(会遵循原图高宽比例)
//此处把图片压成400×500的缩略图
Thumbnails.of(fromPic).size(400,500).toFile(toPic);//变为400*300,遵循原图比例缩或放到400*某个高度
//按照比例进行缩小和放大
Thumbnails.of(fromPic).scale(0.2f).toFile(toPic);//按比例缩小
Thumbnails.of(fromPic).scale(2f);//按比例放大
//图片尺寸不变,压缩图片文件大小outputQuality实现,参数1为最高质量
Thumbnails.of(fromPic).scale(1f).outputQuality(0.25f).toFile(toPic);