java使用thumbnailator-0.4.8.jar 生成缩略图

场景一:图片尺寸不变,修改图片文件类型

 使用:

Thumbnails.of("F:\\image\\IMG_20131229_114806.png")  .scale(1f)

.outputFormat("jpg")

.toFile("F:\\image\\output\\IMG_20131229_114806");

注意:outputFormat:输出的图片格式。注意使用该方法后toFile()方法不要再含有文件类型的后缀了,否则会生成 IMG_20131229_114806.jpg.jpg 的图片。

场景二:图片尺寸不变,压缩图片文件大小

使用:

Thumbnails.of("F:\\image\\IMG_20131229_114806.png")  .scale(1f)

.outputQuality(0.25f)

.outputFormat("jpg")

.toFile("F:\\image\\output\\IMG_20131229_114806");

注意:outputQuality:输出的图片质量,范围:0.0~1.0,1为最高质量。注意使用该方法时输出的图片格式必须为jpg(即outputFormat("jpg")。其他格式我没试过,感兴趣的自己可以试试)。否则若是输出png格式图片,则该方法作用无效【这其实应该算是bug】。

场景三:压缩至指定图片尺寸(例如:横400高300),不保持图片比例

使用:

Thumbnails.of("F:\\image\\IMG_20131229_114806.png")

.forceSize(400, 300)

.toFile("F:\\image\\output\\IMG_20131229_114806");

场景四:压缩至指定图片尺寸(例如:横400高300),保持图片不变形,多余部分裁剪掉

使用:

String imagePath = "F:\\image\\IMG_20131229_114806.jpg";

BufferedImage image = ImageIO.read(new File(imagePath));

Builder<BufferedImage> builder = null;

int imageWidth = image.getWidth();

int imageHeitht = image.getHeight();

if ((float)300 / 400 != (float)imageWidth / imageHeitht) {

if (imageWidth > imageHeitht) {

image = Thumbnails.of(imagePath).height(300).asBufferedImage();

} else {

image = Thumbnails.of(imagePath).width(400).asBufferedImage();

}

builder = Thumbnails.of(image).sourceRegion(Positions.CENTER, 400, 300).size(400, 300);

} else {

builder = Thumbnails.of(image).size(400, 300);

}

builder.outputFormat("jpg").toFile("F:\\image\\output\\IMG_20131229_114806");

这种情况复杂些,既不能用size()方法(因为横高比不一定是4/3,这样压缩后的图片横为400高为300),也不能用forceSize()方法。首先判断横高比,确定是按照横400压缩还是高300压缩,压缩后按中心400*300的区域进行裁剪,这样得到的图片便是400*300的裁剪后缩略图。

使用size()或forceSize()方法时,如果图片比指定的尺寸要小(比如size(400, 300),而图片为40*30),则会拉伸到指定尺寸。

时间: 2024-11-10 07:05:48

java使用thumbnailator-0.4.8.jar 生成缩略图的相关文章

Java生成缩略图Thumbnailator(转载)

转自(http://rensanning.iteye.com/blog/1545708) Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且 允许微调缩略图生成,同时保持了需要写入到最低限度的代码量.同时还支持根据一个目录批量生成缩略图. thumbnailator-0.4.8.jar 下载地址:http://files.cnblogs.com/files/haha12/th

Java使用QRCode.jar生成与解析二维码

正题:Java使用QRCode.jar生成与解析二维码demo 欢迎新手共勉,大神监督指正 # 不知道QRCode的请移步wiki,自行了解,这里不多做解释 *******创建二维码之前的工作******** 去下面给出的地址下载QRCode.jar包,此jar包已经包括 生成与解析 . 官网下载到的jar包是没有解析的 https://files.cnblogs.com/files/bigroc/QRCode.zip ***创建好你的测试类导好jar包开始吧*** 第一部分:生成二维码 pac

Java生成缩略图之Thumbnailator

Thumbnailator 是一个为Java界面更流畅的缩略图生成库.从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量.同时还支持根据一个目录批量生成缩略图. 原图如下:  1.指定大小进行缩放 Java代码   //size(宽度, 高度) /* * 若图片横比200小,高比300小,不变 * 若图片横比200小,高比300大,高缩小到300,图片比例不变 * 若图片横比200大,高比

Java使用zpxing.jar生成带url的二维码

第一步下载zpxing.jar包,并加载进来(网上有很多类似的jar包,这里小编使用的是谷歌提供的jar) 二维码工具类: package com.zpxing.controller; import java.awt.BasicStroke; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Shape; import java.awt.geom.RoundRe

开源 免费 java CMS - FreeCMS2.0 移动APP生成信息数据

项目地址:http://www.freeteam.cn/ 生成信息数据 生成当前管理站点下允许移动APP访问的栏目的信息页面. 从左侧管理菜单点击生成信息数据进入. 您可以选择需要生成的栏目,然后点击"生成信息数据"进行信息页数据的静态化. 如果您是此站点的总管理员,您也可以把"是否所有栏目"属性选择为是,点击"生成信息数据"完成对此站点所有栏目的信息页数据的静态化. 系统会在此站点目录/mobile/栏目id/info/YYYY/目录下生成以信

开源 免费 java CMS - FreeCMS2.0 移动APP生成栏目数据

项目地址:http://www.freeteam.cn/ 生成栏目数据 生成当前管理站点下允许移动APP访问的栏目的栏目页面. 从左侧管理菜单点击生成栏目数据进入. 您可以选择需要生成的栏目,然后点击"生成所选栏目数据"进行栏目页数据的静态化. 如果您是此站点的总管理员,您也可以点击"生成此站点所有栏目数据"完成对此站点所有栏目页数据的静态化. 系统会在此站点目录下创建一个以栏目id为名字的文件夹用于存放此栏目的静态化页面. 可以设置生成前多少页,如设置只生成前10

开源 免费 java CMS - FreeCMS2.0 移动APP生成首页数据

项目地址:http://www.freeteam.cn/ 生成首页数据 提取当前管理站点下允许移动APP访问的首页数据,生成json数据到/site/站点目录/mobile/index_页数.html页面. 从左侧管理菜单点击生成首页数据进入. 点击确定即可. 开源 免费 java CMS - FreeCMS2.0 移动APP生成首页数据

java导出excel不需要额外jar包

目前我知道的在java中导出Excel可以用poi或在jsp的文件头改变输出流.下面再介绍一种就用java基础包导出的Excel.导出的格式形如: 源码如下: package csvExcel; import java.io.FileWriter; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java

命令行方式使用abator.jar生成ibatis相关代码和sql语句xml文件

最近接手一个老项目,使用的是数据库是sql server 2008,框架是springmvc + spring + ibatis,老项目是使用abator插件生成的相关代码,现在需要增加新功能,要添加几张新表,可以目前网上下载的abator插件,在新版的eclippse EE中UI根本打不开,只有使用命令行方式来生成相关代码,将下载的abator插件解压出来,提取其中的abator.jar文件即可,其他的文件不需要.abator的配置文件如下: <?xml version="1.0&quo