java图片处理开源框架
java图片处理开源框架
以前一直不明白,java开源框架什么意思,搜集资料得出以下结论
其实java框架可以理解为一个工具或者一个插件,将一个公用的、常用的技术封装起来,处理一些基础的、繁琐的问题。
Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。
支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。
另外值得一提的是,Thumbnailator至今仍不断更新,怎么样,感觉很有保障吧!
Thumbnailator官网:http://code.google.com/p/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"));
以上转载复制csdn大神写的开源工具。
java图片处理开源框架的更多相关文章
- Java图片处理 Thumbnails框架
一.设置图片的缩放比例或者图片的质量比 第一步:导入maven的jar包 <dependency> <groupId>net.coobird</groupId ...
- Android开发常用开源框架:图片处理
https://blog.csdn.net/SGQ_CSDN/article/details/79910709 Android开发常用开源框架:图片处理 框架名称 功能描述 Android Unive ...
- 25类Android常用开源框架
1.图片加载,缓存,处理 框架名称 功能描述 Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时 Picasso 一个强大的图片下载与缓存的库 F ...
- android glide图片加载框架
项目地址: https://github.com/bumptech/glide Glide作为安卓开发常用的图片加载库,有许多实用而且强大的功能,那么,今天就来总结一番,这次把比较常见的都写出来,但并 ...
- Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解
转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...
- Android图片加载与缓存开源框架:Android Glide
<Android图片加载与缓存开源框架:Android Glide> Android Glide是一个开源的图片加载和缓存处理的第三方框架.和Android的Picasso库类似,个人感觉 ...
- Android的SwipeToDismiss第三方开源框架模拟QQ对话列表侧滑删除,置顶,将头像图片圆形化处理。
<Android SwipeToDismiss:左右滑动删除ListView条目Item> Android的SwipeToDismiss是github上一个第三方开源框架(github ...
- Android(java)学习笔记214:开源框架的文件上传(只能使用Post)
1.文件上传给服务器,服务器端必然要写代码进行支持,如下: 我们新建一个FileUpload.jsp的动态网页,同时我们上传文件只能使用post方式(不可能将上传数据拼凑在url路径下),上传数据Ap ...
- Android中使用开源框架android-image-indicator实现图片轮播部署
之前的博文中有介绍关于图片轮播的实现方式,分别为(含超链接): 1.<Android中使用ViewFlipper实现屏幕切换> 2.<Android中使用ViewPager实现屏幕页 ...
随机推荐
- DOM节点类型
DOM1级定义了一个Node接口,该接口将由DOM中的所有节点类型实现.这个Node接口在JavaScript中是作为Node类型实现的:除了IE外,在其他所有浏览器中都可以访问到这个类型.JavaS ...
- sql性能优化之多表联查
先贴上我优化后的核心代码: select * into #result from ( select p.AchivementCount,isnull(a.ByAttentionCount,0) ByA ...
- css学习の第三弹—盒模型的创建和使用
一.css盒模型: 元素分类: 块状元素.内联元素(又叫行内元素)和内联块状元素. >>常用的块状元素有: <div>.<p>.<h1>...<h ...
- Linux 学习(01):Linux Shell
进入命令行 在图形化桌面出现之前,与Unix系统进行交互的唯一方式就是借助由shell所提供的文本命令行界面(command line interface,CLI).CLI只能接受文本输入,也只能显示 ...
- UML类图三
2. 依赖关系 依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系.大多数情况下,依赖关系体现在某个类的 ...
- 详解apply
先谈this 关于this的指向就不细说了,网上有无数博客以及you don't kown js这类书讲的已经很详细了这里就不炒冷饭了. 举几个简单的例子 function foo() { conso ...
- 在Editplus中配置java的(带包)编译(javac)和运行(java)的方法
配置的前提是电脑安装了JDK并且配置好了相关的环境变量(JAVA_HOME,path和classpath). 配置好后在命令行中输入javac和java验证是否配置成功: 如果出现上面的情况则说明配置 ...
- install-scp
centos6 minilize system will not scp command install: yum -y install openssh-clients and another mac ...
- 【django之分页器】
一.什么是分页功能 二.Django的分页器(paginator) 语法: paginator = Paginator(book_list, 8) #8条一页print("count:&qu ...
- Filecoin协议(挖矿)
Filecoin协议是如何运作的? 用户如何使用Filecoin系统来查询,存储数据? 存储矿工如何挖矿,如何获取FIL代币? 检索矿工如何挖矿,获取FIL代币? 本文主要回答上面的这些问题!!! 首 ...