全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java图片处理开源框架Thumbnailator

图片处理是当今软件开发中非常重要的一环,然而处理图片的开源框架却并不多。现金网上流传的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小时内与您取得联系。