700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Thumbnails进行图片处理:缩放 水印 裁剪

Thumbnails进行图片处理:缩放 水印 裁剪

时间:2021-07-04 15:08:21

相关推荐

Thumbnails进行图片处理:缩放 水印 裁剪

一、简介

Thumbnailator是一个非常优秀的图片处理开源Java类库,处理效果极好,使用非常简单,极大的简化了代码量。同时支持批量处理。

二、maven依赖

<dependency><groupId>net.coobird</groupId><artifactId>thumbnailator</artifactId><version>0.4.8</version></dependency>

三、Thumbnails.of()

Thumbnails可以读取本地图片、url图片等。使用方法如下,读取指定url图片,scale(0.5f),将尺寸缩减一半儿。.outputQuality(0.5f),输出质量降低一半儿。最后输出到文件或者输出流中。

ByteArrayOutputStream outStream = new ByteArrayOutputStream();Thumbnails.of(url).scale(0.5f).outputQuality(0.5f).toOutputStream(outStream);

四、添加水印

Thumbnails.of(url).scale(0.5f).watermark(Positions.CENTER,ImageIO.read(waterPic),0.5f) .outputQuality(0.8f).toFile(toPic);

五、裁剪

//压缩至指定图片尺寸,保持图片不变形,多余部分裁剪掉//压缩至指定图片尺寸(例如:横400高300),保持图片不变形,多余部分裁剪掉BufferedImage image = ImageIO.read(fromPic); Builder builder = null; int imageWidth = image.getWidth(); int imageHeitht = image.getHeight(); if ((float)300 / 400 != (float)imageWidth / imageHeitht) {if (imageWidth > imageHeitht) {image = Thumbnails.of(fromPic).height(300).asBufferedImage(); } else {image = Thumbnails.of(fromPic).width(400).asBufferedImage(); } builder = Thumbnails.of(image).sourceRegion(Positions.CENTER, 400, 300).size(400, 300); } else {builder = Thumbnails.of(image).size(400, 300); } builder.outputFormat("jpg").toFile(toPic); //scale 参数是浮点数,大于1表示放大,小于1表示缩小//outputQuality 参数是浮点数,质量压缩,0-1之间 //keepAspectRatio 在调整尺寸时保持比例,默认为true,如果要剪裁到特定的比例,设置为false即可

*注意:scale、width|height、size三者不能同时共存,但必须要有一个

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。