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 — 重采样拷贝部分图像并调整大小 /* 如何知道图片的大小和类型 无法确认调 ...
随机推荐
- 结队编程--java实现
1.GitHub地址:https://github.com/caiyouling/Myapp 队友:钟小敏 GitHub地址:https://github.com/zhongxiao136/Myapp ...
- Java文件流下载并提示文件不存在
做文件下载功能的时候,一般使用流的形式下载文件, 如果源文件不存在,下载页面可能就会没有提示,或者一片空白 用户操作之后可能一头雾水,那如何友好提示呢? 想到的有两种 1.可以尝试下载一个名称为:文件 ...
- scrapy 爬虫中间件-offsite和refer中间件
环境使用anaconda 创建的pyithon3.6环境 mac下 source activate python36 mac@macdeMacBook-Pro:~$ source activate p ...
- 【转】移植vsftpd到arm linux
vsftpd即very secure FTP daemon(非常安全的FTP进程),是一个基于GPL发布的类UNIX类操作系统上运行的服务器的名字(是一种守护进程),可以运行在诸如Linux.BSD. ...
- beta版本——第二次冲刺
第二次冲刺 (1)SCRUM部分☁️ 成员描述: 姓名 唐财伟 完成了哪个任务 搭建Nginx 花了多少时间 3h 还剩余多少时间 0h 遇到什么困难 解决端口冲突,启动报错等问题 这两天解决的进度 ...
- CentOS6.5_x64上简单编译配置Heartbeat3.0.4
Heartbeat 3与 2.x的最大差别在于,3 按模块把的原来2.x 拆分为多个子项目,并且提供了一个cluster-glue的组件,专用于Local ResourceManager 的管理.即h ...
- 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~
上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...
- Kotlin协程作用域与构建器详解
在上次我们是通过了这种方式来创建了一个协程: 接着再来看另一种创建协程的方式: 下面用它来实现上一次程序一样的效果,先来回顾一下上一次程序的代码: 好,下面改用runBlocking的方式: 运行一下 ...
- 004——转载—Word2016“此功能看似已中断 并需要修复”问题解决办法
解决办法如下: 在Win10系统上安装 Office 2016 之后,每次打开Word文档可能都会提示“很抱歉,此功能看似已中断,并需要修复,请使用Windows 控制面板中的“程序和功能”选项修复M ...
- 中断点异常 STATUS_BREAKPOINT(0x80000003)
简介 STATUS_BREAKPOINT,值为0x80000003,称为中断指令异常,表示在系统未附加内核调试器时遇到断点或断言. 触发条件 通常中断指令异常可以在以下条件下触发: 硬代码中断请求,如 ...