首页 > 编程语言 >Java生成缩略图之Thumbnailator

Java生成缩略图之Thumbnailator

时间:2023-05-16 10:04:39浏览次数:47  
标签:200 Java Thumbnails 缩略图 a380 Thumbnailator jpg images 1280x1024


Thumbnailator 是一个为Java界面更流畅的缩略图生成库。从API提供现有的图像文件和图像对象的缩略图中简化了缩略过程,两三行代码就能够从现有图片生成缩略图,且允许微调缩略图生成,同时保持了需要写入到最低限度的代码量。同时还支持根据一个目录批量生成缩略图。 


http://code.google.com/p/thumbnailator/ 


版本:thumbnailator-0.4.2.jar 


原图如下: 


 



1、指定大小进行缩放 


1. //size(宽度, 高度)
2.   
3. /*  
4.  * 若图片横比200小,高比300小,不变  
5.  * 若图片横比200小,高比300大,高缩小到300,图片比例不变  
6.  * 若图片横比200大,高比300小,横缩小到200,图片比例不变  
7.  * 若图片横比200大,高比300大,图片按比例缩小,横为200或高为300  
8.  */
9. Thumbnails.of("images/a380_1280x1024.jpg")   
10. 200, 300)  
11. "c:/a380_200x300.jpg");  
12.   
13. Thumbnails.of("images/a380_1280x1024.jpg")   
14. 2560, 2048)   
15. "c:/a380_2560x2048.jpg");



2、按照比例进行缩放 


1. //scale(比例)
2. Thumbnails.of("images/a380_1280x1024.jpg")   
3. 0.25f)  
4. "c:/a380_25%.jpg");  
5.   
6. Thumbnails.of("images/a380_1280x1024.jpg")   
7. 1.10f)  
8. "c:/a380_110%.jpg");



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


1. //keepAspectRatio(false) 默认是按照比例缩放的
2. Thumbnails.of("images/a380_1280x1024.jpg")   
3. 200, 200)   
4. false)   
5. "c:/a380_200x200.jpg");



4、旋转 


1. //rotate(角度),正数:顺时针 负数:逆时针
2. Thumbnails.of("images/a380_1280x1024.jpg")   
3. 1280, 1024)  
4. 90)   
5. "c:/a380_rotate+90.jpg");   
6.   
7. Thumbnails.of("images/a380_1280x1024.jpg")   
8. 1280, 1024)  
9. 90)   
10. "c:/a380_rotate-90.jpg");


 



5、水印 



    1. //watermark(位置,水印图,透明度)
    2. Thumbnails.of("images/a380_1280x1024.jpg")   
    3. 1280, 1024)  
    4. new File("images/watermark.png")), 0.5f)   
    5. 0.8f)   
    6. "c:/a380_watermark_bottom_right.jpg");  
    7.   
    8. Thumbnails.of("images/a380_1280x1024.jpg")   
    9. 1280, 1024)  
    10. new File("images/watermark.png")), 0.5f)   
    11. 0.8f)   
    12. "c:/a380_watermark_center.jpg");



     



    6、裁剪 


    1. //sourceRegion()
    2.   
    3. //图片中心400*400的区域
    4. Thumbnails.of("images/a380_1280x1024.jpg")  
    5. 400,400)  
    6. 200, 200)  
    7. false)   
    8. "c:/a380_region_center.jpg");  
    9.   
    10. //图片右下400*400的区域
    11. Thumbnails.of("images/a380_1280x1024.jpg")  
    12. 400,400)  
    13. 200, 200)  
    14. false)   
    15. "c:/a380_region_bootom_right.jpg");  
    16.   
    17. //指定坐标
    18. Thumbnails.of("images/a380_1280x1024.jpg")  
    19. 600, 500, 400, 400)  
    20. 200, 200)  
    21. false)   
    22. "c:/a380_region_coord.jpg");



    7、转化图像格式 


    1. //outputFormat(图像格式)
    2. Thumbnails.of("images/a380_1280x1024.jpg")   
    3. 1280, 1024)  
    4. "png")   
    5. "c:/a380_1280x1024.png");   
    6.   
    7. Thumbnails.of("images/a380_1280x1024.jpg")   
    8. 1280, 1024)  
    9. "gif")   
    10. "c:/a380_1280x1024.gif");



    8、输出到OutputStream 


    1. //toOutputStream(流对象)
    2. OutputStream os = new FileOutputStream("c:/a380_1280x1024_OutputStream.png");  
    3. Thumbnails.of("images/a380_1280x1024.jpg")   
    4. 1280, 1024)  
    5.         .toOutputStream(os);



    9、输出到BufferedImage 


    1. //asBufferedImage() 返回BufferedImage
    2. BufferedImage thumbnail = Thumbnails.of("images/a380_1280x1024.jpg")   
    3. 1280, 1024)  
    4.         .asBufferedImage();  
    5. ImageIO.write(thumbnail, "jpg", new File("c:/a380_1280x1024_BufferedImage.jpg"));






    标签:200,Java,Thumbnails,缩略图,a380,Thumbnailator,jpg,images,1280x1024
    From: https://blog.51cto.com/u_16112859/6282431

    相关文章

    • java获取目录下文件名称
      1.package2.import3.import4.import5.6./**7.*读取目录及子目录下指定文件名的路径,返回一个List8.*/9.10.publicclass11.privatestaticLoggerlogger=Logger.getLogger(FileViewer.class);12.13./**14.*@parampath15.......
    • 01-面试必会-JAVA基础篇
      1.Final有什么用?被final修饰的类不可以被继承被final修饰的方法不可以被重写被final修饰的变量不可以被改变,被final修饰不可变的是变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的2.什么是重载(Overload)和重写(Override)?重载:发生在同一个类中,方法名相......
    • Java初学者之数据类型
      今天下午看了点数据类型的东西,来这里总结一下。顺便锻炼一下自己的思维能力.首先数据类型的分类:1. 基本数据类型2.引用数据类型基本数据类型有八种:整数型:byte(1B)short(2B)int(4B)long(8B),小数型:float(4B),double(8B),布尔值:true,false(1bit),字符型:char(2B)引用数......
    • java面向对象
      java面向对象编程面向对象思想:物以类聚,分类的思维模式。思考问题首先会解决问题需要那些分类适合处理复杂的问题,适合多人的协作问题面向对象的本质:以类的方式组织代码,以对象的组织(封装)数据特征:抽象三大特性:封装,继承,多态static加了static的方法可以通过类名直接调用......
    • lombok (java 驼峰规范导致的 JSON 序列化问题)
      1、问题描述有一个接收类,出于某种原因(调用第三方接口)会使用首字母大写的情况@DatapublicclassHelloModel{ privateStrigATest; privateStrigBTest;}当我使用这个类接收一个JSON格式的数据,转换为对应的这个HelloModel类时,会出现ATest和BTest都为null的情......
    • window 通过idea的java工程。生成bat文件
      参考两个大佬的。一、java工程,生成jar包。参考:https://www.cnblogs.com/blog5277/p/5920560.html重点:右键项目名--->选择OpenModuleSetting(默认快捷键F4)--->打开的弹框左侧选择Libraries--->弹框中间点击“+”号--->Java--->在弹出的选择框中选择所依赖的所有jar包(将所有jar......
    • Java通过反射获取Fields、Method、Constructor示例
      1.getFields()和getDeclaredFields()getFields能获取该类和父类(包括Object)public的属性,getDeclaredFields获取该类public和private的属性2.getMethods()和getDeclaredMethods()getMethods能获取该类和父类(包括Object)public的方法,getDeclaredMethods获取该类public和privat......
    • Java学习笔记(十二)
      1、    请描述你理解的对象数组对象数组是一种由多个对象组成的数组,每个元素都是一个对象。在Java中,对象数组可以用来存储同一类型的对象,这些对象可以是预定义的类对象,也可以是自定义的类对象。2、请描述数组的扩容机制扩容其实就是定义一个空间程度更大的数组,然后把原......
    • Java设计模式-简单工厂模式
      简介在软件开发过程中,设计模式是一种被广泛应用的实践,它是通过总结、归纳和提炼出软件设计经验,从而使得设计更加优雅、高效。简单工厂模式是设计模式中最基本、最简单的一种模式,它能够有效地封装对象的创建过程,简化代码结构。简单工厂模式又称为静态工厂方法模式,它是通过定义一......
    • Java设计模式-桥接模式
      简介桥接模式(BridgePattern)是一种结构性设计模式,它的主要作用是将抽象部分和实现部分解耦,使它们可以独立变化而不会互相影响。桥接模式最早由GoF(GangofFour)提出,在《设计模式》一书中有详细的介绍。桥接模式和其他设计模式的区别在于它关注的是如何将抽象和实现分离,从而达到灵......