thumbnailator是谷歌处理图片的开源工具类,能够对图片进行缩放,旋转,压缩,剪裁,添加水印,转换格式等;html

maven引入:git

net.coobird

thumbnailator

0.4.8

基本使用Demo:github

/**

* 2019年4月17日下午10:51:07

*/

package testThumbnailator;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

import net.coobird.thumbnailator.Thumbnails;

import net.coobird.thumbnailator.geometry.Positions;

/**

* @author xinwenfeng

*

*/

public class TestThumbnailator {

//API文档:http://coobird.github.io/thumbnailator/javadoc/0.4.8/net/coobird/thumbnailator/package-summary.html

/**

* @param args

*/

public static void main(String[] args) {

try {

Thumbnails.of("BL_pre.jpg")

.sourceRegion(Positions.CENTER, 500, 500)

//.size(200, 300)

//.width(100)

//.height(200)

//.forceSize(400, 400)

.scale(0.8d)

//.scale(0.5d, 0.8d)

//.keepAspectRatio(false)

//.rotate(90d)

.watermark(Positions.CENTER, ImageIO.read(new File("watermark.png")), 0.8f)

.outputQuality(0.75f)

.outputFormat("JPEG")

//.asBufferedImage()

.toFile("out.jpeg");

} catch (IOException e) {

e.printStackTrace();

}

}

}

原图:api

水印:oracle

处理后:maven

注:处理的图片必须指定大小,size,width,height,forcesize,scale;不可重复设置同一种类型的属性;有的属性设置会互斥;工具

1.读入源图片

能够批量处理,多个文件或者文件夹;ui

Thumbnails.url

Thumbnails.File... files) 从文件或者文件夹读入源;

Thumbnails.InputStream... inputStreams) 从流读入源;

Thumbnails.String... files)

Thumbnails.URL... urls)

2.设置大小,按比例或者拉伸

. 按比例,使原图撑满size大小;

. 设置宽,高按比例;

. 设置高,宽按比例;

. 设置宽高,不按比例,会按照设置的宽高拉伸;

. 按比例缩放,0~1缩小,1原比例,>1放大;

. 长宽各自设置比例,会拉伸;

.

.

注:size、width/height、scale、forceSize不能并用;size至关于width+height;forceSize至关于设置长款+keepAspectRatio=false,因此forceSize不能跟其余设置长款属性、keepAspectRatio并用;

3.剪裁

. 剪裁原图,坐标x,y起始,剪裁出宽度width高度height的图像,x向右为正,y向下为正,width(向右)和height(向下)必须大于0;

.Position position, int width, int height) 剪裁原图,区域位置position可用Positions枚举的9个位置或者实现Position接口的实现类;

.

4.旋转

. 旋转角度,顺时针为正;

5.水印

.

.BufferedImage image, float opacity) 中心位置,opacity的不透明度设置水印(0.0<=opacity<=1.0);

.Position position, BufferedImage image, float opacity) 在position位置,opacity不透明度设置水印;

6.质量

. 质量0.0<=quality<=1.0;

.

7.输出格式

.

8.输出图片

.

.

.

.File destinationDir, Rename rename) 返回文件列表,并按照指定的重命名规则生成到指定目录里(文件夹要存在);

.

.String outFilepath)

.File destinationDir, Rename rename) 无返回,按照重命名规则生成到文件夹里;

. 设置是否覆盖已存在的文件(只对toFile、toFiles、asFiles有效);

其余方法和功能见api

java thumbnails 中心点_JavaDemo——java使用Thumbnails处理图片相关推荐

  1. thumbnails java_在JAVA中使用Thumbnails为图片加水印

    在JAVA中使用Thumbnails为图片加水印 将D盘下面的cat.jpg作为水印加在2.jpg上面,输出新的图片2_cat.jpg到D盘下面 1.java类import java.io.File; ...

  2. Java实用教程笔记 Java入门

    Java入门 JDBC Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新 ...

  3. java 判断图片合适,Java 判断图片色彩

    package cardshibie; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOut ...

  4. 【Java应用】使用Java实现机器学习算法:聚类、分类、预测

    一.引言 1.机器学习算法概述 机器学习是一种人工智能技术,旨在通过使用数据和统计分析来让计算机系统自动改进性能.机器学习算法可分为三大类:聚类.分类和预测.聚类算法用于将数据集分成不同的群组:分类算 ...

  5. java实现图片切割_【Java】K-means算法Java实现以及图像切割

    1.K-means算法简述以及代码原型 总的来讲,k-means聚类须要下面几个步骤: ①.初始化数据 ②.计算初始的中心点,能够随机选择 ③.计算每一个点到每一个聚类中心的距离.而且划分到距离最短的 ...

  6. 【Java】K-means算法Java实现以及图像分割

    1.K-means算法简述以及代码原型 数据挖掘中一个重要算法是K-means,我这里就不做详细介绍.如果感兴趣的话可以移步陈皓的博客: http://www.csdn.net/article/201 ...

  7. 广东java工资一般多少_广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少...

    广东java工资待遇,广东java工资一般多少,广东java工资底薪最低多少 首页 > java > 广东java工资待遇 作者:镀金池   发布时间:2018-12-22 11:20 在 ...

  8. 解决Apache CXF 不支持传递java.sql.Timestamp和java.util.HashMap类型问题

    在项目中使用Apache开源的Services Framework CXF来发布WebService,CXF能够很简洁与Spring Framework 集成在一起,在发布WebService的过程中 ...

  9. java web ubuntu_Ubuntu部署Java web项目

    登录服务器和给服务器传输文件,使用的工具是Xshell Xftp Mysql 安装mysql 输入:sudo apt-get update                     更新软件列表 输入: ...

最新文章

  1. 查询表空间是否是设置了自增
  2. windows 驱动和应用层的三种通信方式 r3到r0 DeviceIoControl 4种ioctl请求
  3. 059_arguments.callee和arguments.callee.caller
  4. Codeforces Round #501 (Div. 3)【未完结】
  5. SAP限定同名程序同时运行数量
  6. mariadb的explain分析及InnoDB存储引擎
  7. Memcached 与 PHP 结合使用
  8. 当用DJANGO的migrate不成功时。。。。
  9. CVE-2016-0143 漏洞分析(2016.4)
  10. LeetCode上读不懂题!看不懂测试用例的那些题(有生之年更新。。。)
  11. header python 环境信息_【关于header信息的构造】Python模拟登录出现乱码
  12. 三大开源生信基础教程和视频课程
  13. atheros有线网卡LINUX驱动,请问有知道atheros无线网卡Linux驱动官方下载地址是什么吗?...
  14. MatLab GUI Change Size 改变界面大小
  15. Jmeter学习笔记4-集合点
  16. 传智播客-刘意-java深入浅出精华版学习笔记Day02
  17. MYSQL选修课的心得体会_选修课心得体会【优秀篇】
  18. 树莓派与matlab联动并安装opencv
  19. SQL调优(SQL TUNING)并行查询提示(Hints)之pq_distribute的使用
  20. php验签,在php中验证签名

热门文章

  1. 天九共享集团:为企业转型提供双重加持
  2. 【motion builder】key帧与动作调整
  3. TensorFlow Estimator 官方文档之----Feature column
  4. pytorch中数据集获取
  5. ubuntu kickstart
  6. 12个球找其中一个不同
  7. Core Animation总结(一)图层变换(平面 立体)
  8. h3c交换机配置nat_H3C路由器动态NAT配置步骤全解析 | 学步园
  9. NeRF-Diffusion系列文章阅读
  10. win无线网卡怎么进入监听模式_建议收藏(笔记本搜不到无线网的教程)