java图片处理(加水印、生成缩略图)等之Thumbnailator库
Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。
比任何现有自己基于jdk库写要稳定、高质量的多,不知道为啥还有那么多人非要自己重新造轮子,关键还造不过人家。
http://code.google.com/p/thumbnailator/
版本:thumbnailator-0.4.2.jar
<!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
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(new File("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(new File("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(流对象)
- OutputStream os = new FileOutputStream("c:/a380_1280x1024_OutputStream.png");
- Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .toOutputStream(os);
9、输出到BufferedImage
- //asBufferedImage() 返回BufferedImage
- BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")
- .size(1280, 1024)
- .asBufferedImage();
- ImageIO.write(thumbnail, "jpg", new File("c:/a380_1280x1024_BufferedImage.jpg"));
java图片处理(加水印、生成缩略图)等之Thumbnailator库的更多相关文章
- ASP组件AspJpeg(加水印)生成缩略图等使用方法
ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...
- yii php 图片上传与生成缩略图
今天需要做图片上传与生成缩略图的功能,把代码进行记录如下: html 视图 ($pic_action_url = $this->createAbsoluteUrl('h ...
- 织梦/dedecms 当文章转载时不需要设置图片水印的设置,取消’图片是否加水印‘的复选框,并且修改如下文件即可生效
当想添加水印是选中“图片是否加水印”复选框即可. 找到include/helpers/image.helper.php这个文件,在里面找到中的if( isset($GLOBALS['needwater ...
- php 图片操作类,支持生成缩略图,添加水印,上传缩略图
<?php class Image { //类开始 public $originimage = ""; //源图片文件地址 public $image ...
- java 实现 PDF 加水印功能
使用java代码实现给PDF加水印的功能 首先导入所需要的依赖 <dependency> <groupId>com.itextpdf</groupId> <a ...
- java 图片压缩 剪切 水印 转换 黑白 缩放
专注java已6年,欢迎加入java核心技术QQ群:135138817,每周五晚有群主进行技术讲座. import java.awt.AlphaComposite; import java.awt.C ...
- java:给图片上加水印
import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.Buff ...
- Android 让系统自动生成缩略图并写入媒体库
MediaStore.Video.Thumbnails.getThumbnail(ContentResolver cr, long origId, int kind, BitmapFactory.Op ...
- [原创]超强C#图片上传,加水印,自动生成缩略图源代码
<%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ ...
- php之图片处理类缩略图加水印
用到两个image系统函数 imagecopymerge — 拷贝并合并图像的一部分 imagecopyresampled — 重采样拷贝部分图像并调整大小 /* 如何知道图片的大小和类型 无法确认调 ...
随机推荐
- mysql高级用法(1)- mariadb的主从搭建
Mariadb介绍: mariadb是mysql的一个分支,需要进一步了解的参考:https://mariadb.org/ 安装参考教程:window版安装:Mariadb 介绍 1 (安装) lin ...
- Windows下搭建TensorFlow的GPU版本
1.下载python3.5.2版本并安装(必须是3.5版本,而且3.5后不带字母的版本) 2.使用下面的地址下载tensorflow的GPU版本 http://www.lfd.uci.edu/~goh ...
- option触发及获取当前选中的option值
#标签 #<select id="city" class="select"> #JavaScript #$("#city").c ...
- Python入门篇-数据结构堆排序Heap Sort
Python入门篇-数据结构堆排序Heap Sort 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.堆Heap 堆是一个完全二叉树 每个非叶子结点都要大于或者等于其左右孩子结点 ...
- Codeforces C.Neko does Maths
题目描述: C. Neko does Maths time limit per test 1 second memory limit per test 256 megabytes input stan ...
- MacOS安装Docker
傻瓜式安装: 1. 浏览器或命令行下载:https://download.docker.com/mac/stable/Docker.dmg 2. 点击安装文件,拖动图标到应用 3. 确认安装正常:do ...
- 关于srping的AOP事务管理问题,自定义切面是否导致事务控制失效
applicationContext.xml: <!-- 方法调用时间记录 --> <bean id="methodExecuteTime" class=&quo ...
- class Pagination(object)分页源码
class Pagination(object): def init(self, current_page, all_count, per_page_num=10, pager_count=11): ...
- Build Post Office II
Description Given a 2D grid, each cell is either a wall 2, an house 1 or empty 0 (the number zero, o ...
- 使用docker搭建etcd
下载etcd代码然后拷贝到服务器 来自为知笔记(Wiz)