文档章节

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

不打伞的小鱼
 不打伞的小鱼
发布于 2015/05/21 11:36
字数 654
阅读 3365
收藏 32

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

 使用:

    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(400300)  

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


场景四:压缩至原图片的百分之多少。

  使用:

            BufferedImage image = ImageIO.read(new File("F:\\image\\IMG_20131229_114806.jpg")); 

            Thumbnails.of(image ).scale(0.25f).toFile("F:\\image\\small\\IMG_20131229_114806.jpg");

 说明:把图片按照原图片的25%来压缩。



场景五:压缩至指定图片尺寸(例如:横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, 400300).size(400300);  

        } else {  

            builder = Thumbnails.of(image).size(400300);  

        }  

        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),则会拉伸到指定尺寸。 


本文转载自:http://blog.csdn.net/wangpeng047/article/details/19624993

不打伞的小鱼
粉丝 70
博文 42
码字总数 24218
作品 0
深圳
程序员
私信 提问
加载中

评论(1)

cd0281
cd0281
xxxx
Thumbnailator 0.4.4 发布,缩略图生成库

Thumbnailator 0.4.4 修复了在 Java 6 Update 45 和 Java 7 Update 21 下的 OutOfMemoryError 的问题。 Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码即可生成图片...

oschina
2013/05/24
1K
2
Thumbnailator的简介和使用范例

1.简单介绍 借用红薯对Thumbnailator 的描述:Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。 有了这玩意...

JoeyBlue
2011/08/14
24.2K
17
Thumbnailator 0.4.5 发布,缩略图生成库

Thumbnailator 0.4.5 修复了'Thumbnailator.createThumbnail' 方法中 Exif 元数据没被使用的问题。 Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码即可生成图片缩略...

oschina
2013/07/03
2.7K
12
Thumbnailator 0.4.2 发布

Thumbnailator 0.4.2 发布,该版本修复了所有用户报告的 bug,包括某些特定环境下自动生成的文件缩略图后缀名错误。 Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单的代码...

红薯
2012/05/07
817
0
Thumbnailator 0.4.1 发布

Thumbnailator 0.4.1 发布,从该版本开始可通过 Maven 中心资料库进行安装和更新,另外修复了在计算缩略图的尺寸上的问题。 Thumbnailator 是一个用来生成图像缩略图的 Java 类库,通过很简单...

红薯
2012/04/03
446
0

没有更多内容

加载失败,请刷新页面

加载更多

Executor线程池原理与源码解读

线程池为线程生命周期的开销和资源不足问题提供了解决方 案。通过对多个任务重用线程,线程创建的开销被分摊到了多个任务上。 线程实现方式 Thread、Runnable、Callable //实现Runnable接口的...

小强的进阶之路
28分钟前
4
0
maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
详解箭头函数和普通函数的区别以及箭头函数的注意事项、不适用场景

箭头函数是ES6的API,相信很多人都知道,因为其语法上相对于普通函数更简洁,深受大家的喜爱。就是这种我们日常开发中一直在使用的API,大部分同学却对它的了解程度还是不够深... 普通函数和...

OBKoro1
今天
5
0
轻量级 HTTP(s) 代理 TinyProxy

CentOS 下安装 TinyProxy yum install -y tinyproxy 启动、停止、重启 # 启动service tinyproxy start# 停止service tinyproxy stop# 重启service tinyproxy restart 相关配置 默认...

Anoyi
今天
2
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部