图片处理是当今软件开发中非常重要的一环,然而处理图片的开源框架却并不多。现金网上流传的Java处理图片的代码,虽然可对图片进行简单处理,但效果并不理想。虽然也有些其他解决方案,但都摆脱不了繁琐,使用起来十分不方便。
为了解决这个问题,我也是在网上找了好久,看了很多资料,功夫不负有心人,最终找到了一个处理图片十分棒的开源框架。特此拿出来与大家分享。

Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。
支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。
另外值得一提的是,Thumbnailator至今仍不断更新,怎么样,感觉很有保障吧!
下面我们介绍下如何使用Thumbnailator
原图:
1、指定大小进行缩放
//size(宽度, 高度)
/*
* 若图片横比200小,高比300小,不变
* 若图片横比200小,高比300大,高缩小到300,图片比例不变
* 若图片横比200大,高比300小,横缩小到200,图片比例不变
* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300
*/
Thumbnails.of("images/a380_1280x1024.jpg")
.size(200, 300)
.toFile("c:/a380_200x300.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(2560, 2048)
.toFile("c:/a380_2560x2048.jpg");
2、按照比例进行缩放
//scale(比例)
Thumbnails.of("images/a380_1280x1024.jpg")
.scale(0.25f)
.toFile("c:/a380_25%.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.scale(1.10f)
.toFile("c:/a380_110%.jpg");
3、不按照比例,指定大小进行缩放
//keepAspectRatio(false)默认是按照比例缩放的
Thumbnails.of("images/a380_1280x1024.jpg")
.size(200,200)
.keepAspectRatio(false)
.toFile("c:/a380_200x200.jpg");
4、旋转
//rotate(角度),正数:顺时针负数:逆时针
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.rotate(90)
.toFile("c:/a380_rotate+90.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.rotate(-90)
.toFile("c:/a380_rotate-90.jpg");
5、水印
//watermark(位置,水印图,透明度)
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.watermark(Positions.BOTTOM_RIGHT,ImageIO.read(newFile("images/watermark.png")),0.5f)
.outputQuality(0.8f)
.toFile("c:/a380_watermark_bottom_right.jpg");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.watermark(Positions.CENTER,ImageIO.read(newFile("images/watermark.png")),0.5f)
.outputQuality(0.8f)
.toFile("c:/a380_watermark_center.jpg");
6、裁剪
//sourceRegion()
//图片中心400*400的区域
Thumbnails.of("images/a380_1280x1024.jpg")
.sourceRegion(Positions.CENTER,400,400)
.size(200,200)
.keepAspectRatio(false)
.toFile("c:/a380_region_center.jpg");
//图片右下400*400的区域
Thumbnails.of("images/a380_1280x1024.jpg")
.sourceRegion(Positions.BOTTOM_RIGHT,400,400)
.size(200,200)
.keepAspectRatio(false)
.toFile("c:/a380_region_bootom_right.jpg");
//指定坐标
Thumbnails.of("images/a380_1280x1024.jpg")
.sourceRegion(600,500,400,400)
.size(200,200)
.keepAspectRatio(false)
.toFile("c:/a380_region_coord.jpg");
7、转化图像格式
//outputFormat(图像格式)
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.outputFormat("png")
.toFile("c:/a380_1280x1024.png");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.outputFormat("gif")
.toFile("c:/a380_1280x1024.gif");
8、输出到OutputStream
//toOutputStream(流对象)
OutputStreamos=newFileOutputStream("c:/a380_1280x1024_OutputStream.png");
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.toOutputStream(os);
9、输出到BufferedImage
//asBufferedImage()返回BufferedImage
BufferedImagethumbnail=Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.asBufferedImage();
ImageIO.write(thumbnail,"jpg",newFile("c:/a380_1280x1024_BufferedImage.jpg"));
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Java
# 图片处理
# Thumbnailator
# Java缩略图生成库之Thumbnailator应用说明
# 如何使用Java给您的图片瘦身之Thumbnailator技术
# 开源
# 的是
# 是一个
# 看了
# 功夫不负有心人
# 很有
# 找了
# 非常重要
# 拿出来
# 一提
# 大家分享
# 可对
# 如何使用
# 并不多
# 远比
# 但都
# 解决这个问题
# 不断更新
# 大家多多
相关文章:
专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?
如何挑选最适合建站的高性能VPS主机?
网站制作培训多少钱一个月,网站优化seo培训课程有哪些?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?
北京网站制作网页,网站升级改版需要多久?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
建站之星24小时客服电话如何获取?
如何快速搭建安全的FTP站点?
建站之星免费版是否永久可用?
大连 网站制作,大连天途有线官网?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
浅析上传头像示例及其注意事项
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
高端建站如何打造兼具美学与转化的品牌官网?
如何通过远程VPS快速搭建个人网站?
湖北网站制作公司有哪些,湖北清能集团官网?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
如何快速生成橙子建站落地页链接?
如何快速启动建站代理加盟业务?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何在阿里云部署织梦网站?
网页设计与网站制作内容,怎样注册网站?
如何在橙子建站上传落地页?操作指南详解
合肥做个网站多少钱,合肥本地有没有比较靠谱的交友平台?
孙琪峥织梦建站教程如何优化数据库安全?
如何破解联通资金短缺导致的基站建设难题?
Android滚轮选择时间控件使用详解
岳西云建站教程与模板下载_一站式快速建站系统操作指南
网站制作报价单模板图片,小松挖机官方网站报价?
商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?
西安大型网站制作公司,西安招聘网站最好的是哪个?
网站制作软件免费下载安装,有哪些免费下载的软件网站?
七夕网站制作视频,七夕大促活动怎么报名?
完全自定义免费建站平台:主题模板在线生成一站式服务
详解jQuery中基本的动画方法
如何通过PHP快速构建高效问答网站功能?
如何通过可视化优化提升建站效果?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
c# F# 的 MailboxProcessor 和 C# 的 Actor 模型
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
活动邀请函制作网站有哪些,活动邀请函文案?
如何确保西部建站助手FTP传输的安全性?
独立制作一个网站多少钱,建立网站需要花多少钱?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
动图在线制作网站有哪些,滑动动图图集怎么做?
如何在Windows服务器上快速搭建网站?
网站制作新手教程,新手建设一个网站需要注意些什么?
如何使用Golang安装API文档生成工具_快速生成接口文档
如何用PHP工具快速搭建高效网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。