Thumbnailator 是一个用来生成图像缩略图、裁切、旋转、添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。

Thumbnailator对图片的简单操作代码如下:

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.OutputStream;

import javax.imageio.ImageIO;

import net.coobird.thumbnailator.Thumbnails;

import net.coobird.thumbnailator.geometry.Positions;

/**

*

* @author yaohucaizi

*

*/

public class ThumbnailatorTest {

/**

*

* @param args

* @throws IOException

*/

public static void main(String[] args) throws IOException {

ThumbnailatorTest thumbnailatorTest = new ThumbnailatorTest();

thumbnailatorTest.test1();

thumbnailatorTest.test2();

thumbnailatorTest.test3();

thumbnailatorTest.test4();

thumbnailatorTest.test5();

thumbnailatorTest.test6();

thumbnailatorTest.test7();

thumbnailatorTest.test8();

thumbnailatorTest.test9();

}

/**

* 指定大小进行缩放

*

* @throws IOException

*/

private void test1() throws IOException {

/*

* size(width,height) 若图片横比200小,高比300小,不变

* 若图片横比200小,高比300大,高缩小到300,图片比例不变 若图片横比200大,高比300小,横缩小到200,图片比例不变

* 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300

*/

Thumbnails.of("images/test.jpg").size(200, 300).toFile(

"C:/image_200x300.jpg");

Thumbnails.of("images/test.jpg").size(2560, 2048).toFile(

"C:/image_2560x2048.jpg");

}

/**

* 按照比例进行缩放

*

* @throws IOException

*/

private void test2() throws IOException {

/**

* scale(比例)

*/

Thumbnails.of("images/test.jpg").scale(0.25f)

.toFile("C:/image_25%.jpg");

Thumbnails.of("images/test.jpg").scale(1.10f).toFile(

"C:/image_110%.jpg");

}

/**

* 不按照比例,指定大小进行缩放

*

* @throws IOException

*/

private void test3() throws IOException {

/**

* keepAspectRatio(false) 默认是按照比例缩放的

*/

Thumbnails.of("images/test.jpg").size(120, 120).keepAspectRatio(false)

.toFile("C:/image_120x120.jpg");

}

/**

* 旋转

*

* @throws IOException

*/

private void test4() throws IOException {

/**

* rotate(角度),正数:顺时针 负数:逆时针

*/

Thumbnails.of("images/test.jpg").size(1280, 1024).rotate(90).toFile(

"C:/image+90.jpg");

Thumbnails.of("images/test.jpg").size(1280, 1024).rotate(-90).toFile(

"C:/iamge-90.jpg");

}

/**

* 水印

*

* @throws IOException

*/

private void test5() throws IOException {

/**

* watermark(位置,水印图,透明度)

*/

Thumbnails.of("images/test.jpg").size(1280, 1024).watermark(

Positions.BOTTOM_RIGHT,

ImageIO.read(new File("images/watermark.png")), 0.5f)

.outputQuality(0.8f).toFile(

"C:/image_watermark_bottom_right.jpg");

Thumbnails.of("images/test.jpg").size(1280, 1024).watermark(

Positions.CENTER,

ImageIO.read(new File("images/watermark.png")), 0.5f)

.outputQuality(0.8f).toFile("C:/image_watermark_center.jpg");

}

/**

* 裁剪

*

* @throws IOException

*/

private void test6() throws IOException {

/**

* 图片中心400*400的区域

*/

Thumbnails.of("images/test.jpg").sourceRegion(Positions.CENTER, 400,

400).size(200, 200).keepAspectRatio(false).toFile(

"C:/image_region_center.jpg");

/**

* 图片右下400*400的区域

*/

Thumbnails.of("images/test.jpg").sourceRegion(Positions.BOTTOM_RIGHT,

400, 400).size(200, 200).keepAspectRatio(false).toFile(

"C:/image_region_bootom_right.jpg");

/**

* 指定坐标

*/

Thumbnails.of("images/test.jpg").sourceRegion(600, 500, 400, 400).size(

200, 200).keepAspectRatio(false).toFile(

"C:/image_region_coord.jpg");

}

/**

* 转化图像格式

*

* @throws IOException

*/

private void test7() throws IOException {

/**

* outputFormat(图像格式)

*/

Thumbnails.of("images/test.jpg").size(1280, 1024).outputFormat("png")

.toFile("C:/image_1280x1024.png");

Thumbnails.of("images/test.jpg").size(1280, 1024).outputFormat("gif")

.toFile("C:/image_1280x1024.gif");

}

/**

* 输出到OutputStream

*

* @throws IOException

*/

private void test8() throws IOException {

/**

* toOutputStream(流对象)

*/

OutputStream os = new FileOutputStream(

"C:/image_1280x1024_OutputStream.png");

Thumbnails.of("images/test.jpg").size(1280, 1024).toOutputStream(os);

}

/**

* 输出到BufferedImage

*

* @throws IOException

*/

private void test9() throws IOException {

/**

* asBufferedImage() 返回BufferedImage

*/

BufferedImage thumbnail = Thumbnails.of("images/test.jpg").size(1280,

1024).asBufferedImage();

ImageIO.write(thumbnail, "jpg", new File(

"C:/image_1280x1024_BufferedImage.jpg"));

}

}

转载:http://www.cnblogs.com/dyllove98/archive/2013/08/02/3233984.html

JAVA日本图片_java使用Thumbnailator操作图片相关推荐

  1. java使用Thumbnailator操作图片

    Thumbnailator 是一个用来生成图像缩略图.裁切.旋转.添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图. Thumbnailato ...

  2. java添加背景图片_Java怎么添加背景图片

    首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; im ...

  3. java 对话框 显示图片_Java对话框上显示图片

    手掌心 其实有很多种方法可以解决图片显示大小的问题:使用photoshop修改. 优点是可以节省系统资源, 显示图片的时候,不用做处理,缺点是需要了解ps的基本操作使用JDialog 自定义对话框. ...

  4. java 生成证书图片_java生成自定义证书图片1 - 制作证书word模板

    最近做项目遇到一个需求,生成指定数据的证书图片(比如毕业证,在空的模板中输入自定义的姓名.日期等信息),尝试了许多方法,最终完美地实现了这个需求. 以下内容为制作证书图片的第一步,制作证书word模板 ...

  5. java 把文字转成图片_java文本文件转化为图片文件怎么弄?

    展开全部 文件在计算机中都是以二62616964757a686964616fe58685e5aeb931333335343365进制保存的,但系统是以文件头来区分各种文件格式的. 也就是说,仅仅更改后 ...

  6. java 多线程下载图片_java多线程实现下载图片并压缩

    最近在做一个需求:从其他系统的ftp目录下载存储图片url的文件,然后读取文件中的url地址,根据地址下载图片后按天压缩成一个包,平均一个地址文件中包含4000个地址左右,也就是说一个文件扫描后需要下 ...

  7. java点击上传上传mysql并显示图片_java + mysql + jdbc实现图片上传

    首先在数据库中用mediumblob来保存图片的位置 Mysql中可以存储大文件数据,一般使用的BLOB对象.如图片,视频等等. BLOB是一个二进制大对象,可以容纳可变数量的数据.因为是二进制对象, ...

  8. ckeditor java 上传_java使用CKEditor实现图片上传功能

    java如何使用ckeditor实现图片上传功能,具体内容如下 1.根据实际需要下载指定的ckeditor 2.删除文件ckeditor/plugins/image/dialogs/image.js预 ...

  9. java html 转图片_Java 将Excel转为图片、html、XPS、XML、CSV

    通过文档格式转换,可满足不同办公场合对文档操作的需求.本文将介绍转换Excel文档为其他常见文档格式的方法.通过文中的方法,可支持将Excel转换为包括PDF.图片.html.XPS.XML.CSV. ...

  10. Java使用google开源工具Thumbnailator实现图片压缩

    前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高清图片,分辨率也是相当的高,当然占用的存储空 ...

最新文章

  1. 基于ipfire的open***功能--client to net (Roadwarrior)配置(一)
  2. 使用主机telnet远程管理路由器和交换机的详细过程及截图
  3. Android Design Library之三: NavigationView
  4. 解析Python中的线程与进程
  5. c++ 预处理命令 #if, #ifdef, #ifndef, #else, #elif, #endif用法
  6. 从零开始学前端:过渡和动画 --- 今天你学习了吗?(CSS:Day20)
  7. python 字符串交集_集合 (Set) | 一山不容二虎的 Python 数据类型
  8. 通过串口波特率计算数据传输速率(每秒字节数)
  9. SignalR 循序渐进
  10. PX4 FMU启动流程 2. 二、 nsh_initscript
  11. 如何将腾讯视频下载的qlv文件导入PR中编辑
  12. ubuntu | 用crossover安装-微信和企业微信
  13. 常见的麦克风供电方式总结(驻极体电容器麦克风)
  14. gzip and deflate
  15. 移动web——学习笔记整理
  16. [译] 项目什么时候需要 React 框架呢?
  17. 「近世代數概論」(Garrett Birkhoff,Saunders Mac Lane) 3.1.1 習題1
  18. SpringBoot与Mysql
  19. maven生成html单元测试报告,Maven中配置生成单元测试报告配置
  20. CADe_SIMu V1.0.0.1手把手学习笔记(2)

热门文章

  1. 计算机监控系统在地铁中的应用有哪些,地铁综合监控
  2. 微信小程序扫码功能的使用
  3. 梦殇 chapter six
  4. 数据结构 实验 c/c++ 六度空间 图 图论
  5. 网络管理(课程总结3)Week12 澳大利亚维多利亚大学VIT1104 Computer Networks
  6. 使用PHP和NetBeans创建基于XAMPP的动态网页(学习笔记7)(技术笔记7)网站应用和服务器管理 澳大利亚维多利亚大学VIT1204 Web Application and
  7. Java中进行Debug断点调试
  8. python安装face_recognition错误
  9. 模拟器使用Fiddler代理后,浏览器报错【该网站的安全证书有问题】解决方法
  10. 芭蕉树上第十七根芭蕉-- 隐式转换