精华内容
下载资源
问答
  • Thumbnailator

    2020-11-21 17:43:22
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的...

    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。

    支持的处理操作:图片缩放,区域裁剪,水印,旋转,保持比例。

    导入依赖

    <!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
    <dependency>
        <groupId>net.coobird</groupId>
        <artifactId>thumbnailator</artifactId>
        <version>0.4.8</version>
    </dependency>
    
    

    函数示例

    从图像文件创建缩略图
    Thumbnails.of(new File("original.jpg"))
            .size(160, 160)
            .toFile(new File("thumbnail.jpg"));
    在此示例中,图像来自original.jpg调整大小,然后保存到thumbnail.jpg。
    
    或者,Thumbnailator将接受文件名作为String。File不需要使用对象指定图像文件:
    
    Thumbnails.of("original.jpg")
            .size(160, 160)
            .toFile("thumbnail.jpg");
    在编写快速原型代码或从脚本语言中使用Thumbnailator时,此表单非常有用。
    
    使用旋转和水印创建缩略图
    Thumbnails.of(new File("original.jpg"))
            .size(160, 160)
            .rotate(90)
            .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f)
            .outputQuality(0.8)
            .toFile(new File("image-with-watermark.jpg"));
    在此示例中,original.jpg调整图像大小,然后顺时针旋转90度,然后在右下角放置一个半透明水印,然后image-with-watermark.jpg以80%压缩质量设置保存。
    
    创建缩略图并写入 OutputStream
    OutputStream os = ...;
    		
    Thumbnails.of("large-picture.jpg")
            .size(200, 200)
            .outputFormat("png")
            .toOutputStream(os);
    在此示例中,将文件中的图像large-picture.jpg调整为最大尺寸200 x 200(保持原始图像的纵横比),并将其写入指定OutputStream的PNG图像。
    
    创建固定大小的缩略图
    BufferedImage originalImage = ImageIO.read(new File("original.png"));
    
    BufferedImage thumbnail = Thumbnails.of(originalImage)
            .size(200, 200)
            .asBufferedImage();
    上面的代码采用图像originalImage并创建一个200像素乘200像素的缩略图,并使用并存储结果thumbnail。
    
    按给定因子缩放图像
    BufferedImage originalImage = ImageIO.read(new File("original.png"));
    
    BufferedImage thumbnail = Thumbnails.of(originalImage)
            .scale(0.25)
            .asBufferedImage();
    上面的代码将图像originalImage带入并创建一个缩略图,该缩略图是原始图像的25%,并使用默认缩放技术来制作存储在其中的缩略图thumbnail。
    
    创建缩略图时旋转图像
    BufferedImage originalImage = ImageIO.read(new File("original.jpg"));
    
    BufferedImage thumbnail = Thumbnails.of(originalImage)
            .size(200, 200)
            .rotate(90)
            .asBufferedImage();
    上面的代码采用原始图像并创建一个顺时针旋转90度的缩略图。
    
    使用水印创建缩略图
    BufferedImage originalImage = ImageIO.read(new File("original.jpg"));
    BufferedImage watermarkImage = ImageIO.read(new File("watermark.png"));
    
    BufferedImage thumbnail = Thumbnails.of(originalImage)
            .size(200, 200)
            .watermark(Positions.BOTTOM_RIGHT, watermarkImage, 0.5f)
            .asBufferedImage();
    如图所示,可以通过调用该watermark方法将水印添加到缩略图。
    
    可以从Positions枚举中选择定位。
    
    缩略图的不透明度(或相反地,透明度)可以通过改变最后一个参数来调整,其中0.0f缩略图是完全透明的,并且1.0f水印是完全不透明的。
    
    将缩略图写入特定目录
    File destinationDir = new File("path/to/output");
    
    Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
            .size(200, 200)
            .toFiles(destinationDir, Rename.PREFIX_DOT_THUMBNAIL);
    此示例将获取源图像,并将缩略图作为文件写入destinationDir(path/to/output目录),同时thumbnail.在文件名前添加重命名。
    
    因此,缩略图将被写为以下文件:
    
    path/to/output/thumbnail.apple.jpg
    path/to/output/thumbnail.banana.jpg
    path/to/output/thumbnail.cherry.jpg
    写入指定目录时,也可以保留原始文件名:
    
    File destinationDir = new File("path/to/output");
    
    Thumbnails.of("apple.jpg", "banana.jpg", "cherry.jpg")
            .size(200, 200)
            .toFiles(destinationDir, Rename.NO_CHANGE);
    在上面的代码中,缩略图将写入:
    
    path/to/output/apple.jpg
    path/to/output/banana.jpg
    path/to/output/cherry.jpg
    
    展开全文
  • 2020年10月17日:Thumbnailator 0.4.13已发布! 有关详细信息,请参见。 现在可以通过使用Thumbnailator! 什么是ThumbnailatorThumbnailator是Java的缩略图生成库。 为什么选择Thumbnailator? 用Java制作高...
  • thumbnailator jar包

    2016-08-30 14:16:52
    thumbnailator 开源图像处理工具jar包
  • Thumbnailator.jar

    2018-06-25 12:26:06
    Thumbnailator是一个用来生成图像缩略图的 Java类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。
  • SpringBoot2.x 整合 thumbnailator 图片处理

    千次阅读 多人点赞 2020-10-08 21:12:36
    SpringBoot2.x 整合 thumbnailator 图片处理

    1、序

    在实际项目中,有时为了响应速度,难免会对一些高清图片进行一些处理,比如图片压缩之类的,而其中压缩可能就是最为常见的。最近,阿淼就被要求实现这个功能,原因是客户那边嫌速度过慢。借此机会,阿淼今儿就给大家介绍一些一下我做这个功能时使用的 Thumbnailator 库。

    Thumbnailator 是一个优秀的图片处理的 Google 开源 Java 类库,专门用来生成图像缩略图的,通过很简单的 API 调用即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。可毫不夸张的说,它是一个处理图片十分棒的开源框架。

    支持:图片缩放,区域裁剪,水印,旋转,保持比例。

    Thumbnailator 官网:https://code.google.com/p/thumbnailator/

    有了这玩意,就不用在费心思使用 Image I/O API,Java 2D API 等等来生成缩略图了。

    废话少说,直接上代码,先来看一个最简单的例子:

    2、代码示例

    2.1. 新建一个springboot项目

    2.2. 引入依赖 thumbnailator

    <dependency>
    	<groupId>net.coobird</groupId>
    	<artifactId>thumbnailator</artifactId>
    	<version>0.4.8</version>
    </dependency>
    

    2.3. controller

    主要实现了如下几个接口作为测试:

    @RestController
    public class ThumbnailsController {
    	@Resource
    	private IThumbnailsService thumbnailsService;
    
    	/**
    	 * 指定大小缩放
    	 * @param resource
    	 * @param width
    	 * @param height
    	 * @return
    	 */
    	@GetMapping("/changeSize")
    	public String changeSize(MultipartFile resource, int width, int height) {
    		return thumbnailsService.changeSize(resource, width, height);
    	}
    
    	/**
    	 * 指定比例缩放
    	 * @param resource
    	 * @param scale
    	 * @return
    	 */
    	@GetMapping("/changeScale")
    	public String changeScale(MultipartFile resource, double scale) {
    		return thumbnailsService.changeScale(resource, scale);
    	}
    
    	/**
    	 * 添加水印 watermark(位置,水印,透明度)
    	 * @param resource
    	 * @param p
    	 * @param shuiyin
    	 * @param opacity
    	 * @return
    	 */
    	@GetMapping("/watermark")
    	public String watermark(MultipartFile resource, Positions p, MultipartFile shuiyin, float opacity) {
    		return thumbnailsService.watermark(resource, Positions.CENTER, shuiyin, opacity);
    	}
    
    	/**
    	 * 图片旋转 rotate(度数),顺时针旋转
    	 * @param resource
    	 * @param rotate
    	 * @return
    	 */
    	@GetMapping("/rotate")
    	public String rotate(MultipartFile resource, double rotate) {
    		return thumbnailsService.rotate(resource, rotate);
    	}
    
    	/**
    	 * 图片裁剪
    	 * @param resource
    	 * @param p
    	 * @param width
    	 * @param height
    	 * @return
    	 */
    	@GetMapping("/region")
    	public String region(MultipartFile resource, Positions p, int width, int height) {
    		return thumbnailsService.region(resource, Positions.CENTER, width, height);
    	}
    }
    

    3、功能实现

    其实引入了这个 Thumbnailator 类库后,代码其实很少,因为我们只需要按照规则调用其 API 来实现即可。就个人而言,挺喜欢这种 API 的方式,简洁,易懂,明了。

    3.1 指定大小缩放

    /**
     * 指定大小缩放 若图片横比width小,高比height小,放大 
     * 若图片横比width小,高比height大,高缩小到height,图片比例不变
     * 若图片横比width大,高比height小,横缩小到width,图片比例不变 
     * 若图片横比width大,高比height大,图片按比例缩小,横为width或高为height
     * 
     * @param resource  源文件路径
     * @param width     宽
     * @param height    高
     * @param tofile    生成文件路径
     */
    public static void changeSize(String resource, int width, int height, String tofile) {
    	try {
    		Thumbnails.of(resource).size(width, height).toFile(tofile);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

    测试:

    3.2 指定比例缩放

    /**
     * 指定比例缩放 scale(),参数小于1,缩小;大于1,放大
     * 
     * @param resource   源文件路径
     * @param scale      指定比例
     * @param tofile     生成文件路径
     */
    public static void changeScale(String resource, double scale, String tofile) {
    	try {
    		Thumbnails.of(resource).scale(scale).toFile(tofile);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

    测试:

    3.3 添加水印

    /**
     * 添加水印 watermark(位置,水印,透明度)
     * 
     * @param resource  源文件路径
     * @param p         水印位置
     * @param shuiyin   水印文件路径
     * @param opacity   水印透明度
     * @param tofile    生成文件路径
     */
    public static void watermark(String resource, Positions p, String shuiyin, float opacity, String tofile) {
    	try {
    		Thumbnails.of(resource).scale(1).watermark(p, ImageIO.read(new File(shuiyin)), opacity).toFile(tofile);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

    测试:

    3.4 图片旋转

    /**
     * 图片旋转 rotate(度数),顺时针旋转
     * 
     * @param resource  源文件路径
     * @param rotate    旋转度数
     * @param tofile    生成文件路径
     */
    public static void rotate(String resource, double rotate, String tofile) {
    	try {
    		Thumbnails.of(resource).scale(1).rotate(rotate).toFile(tofile);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

    测试:

    3.5 图片裁剪

    /**
     * 图片裁剪 sourceRegion()有多种构造方法,示例使用的是sourceRegion(裁剪位置,宽,高)
     * 
     * @param resource  源文件路径
     * @param p         裁剪位置
     * @param width     裁剪区域宽
     * @param height    裁剪区域高
     * @param tofile    生成文件路径
     */
    public static void region(String resource, Positions p, int width, int height, String tofile) {
    	try {
    		Thumbnails.of(resource).scale(1).sourceRegion(p, width, height).toFile(tofile);
    	} catch (IOException e) {
    		e.printStackTrace();
    	}
    }
    

    测试:

    说明:

    • 1.keepAspectRatio(boolean arg0) 图片是否按比例缩放(宽高比保持不变)默认 true
    • 2.outputQuality(float arg0) 图片质量
    • 3.outputFormat(String arg0) 格式转换

    小结

    值得注意的是,若 png、gif 格式图片中含有透明背景,使用该工具压缩处理后背景会变成黑色,这是 Thumbnailator 的一个 bug,预计后期版本会解决。

    代码地址https://github.com/mmzsblog/mmzsblog-util/

    展开全文
  • thumbnailator-0.4.8.zip

    2020-02-29 18:55:22
    thumbnailator-0.4.8.jar包 Java使用google开源工具Thumbnailator实现图片压缩
  • Thumbnailator教程

    2019-09-22 17:00:15
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的...

    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式,同时保持了需要写入的最低限度的代码量。还支持对一个目录的所有图片进行批量处理操作。

     

    一、导入依赖

     <!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator -->
        <dependency>
          <groupId>net.coobird</groupId>
          <artifactId>thumbnailator</artifactId>
          <version>0.4.8</version>
        </dependency>

    二、案例

    1、从图像文件创建缩略图

    Thumbnails.of(new File("D:\original.jpg"))     //原图片位置
            .size(160, 160)                            //调整大小
            .toFile(new File("E:\thumbnail.jpg"));   //调整后

    2、创建带有旋转和水印的缩略图

    Thumbnails.of(new File("original.jpg"))
            .size(160, 160)
            .rotate(90)               //顺时针旋转90°
            //水印位置,水印图片读取流(路径)、透明度
            .watermark(Positions.BOTTOM_RIGHT, ImageIO.read(new File("watermark.png")), 0.5f)
            //压缩倍数
            .outputQuality(0.8)
            .toFile(new File("image-with-watermark.jpg"));

     

    展开全文
  • Thumbnailator使用

    2018-01-05 13:53:20
    http://blog.csdn.net/wangpeng047/article/details/19624993###; 利用Thumbnailator解决了微服务接口调用影像缩略图问题,只需下载jar包,三两句代码,使用起来简单方便,赞!

      http://blog.csdn.net/wangpeng047/article/details/19624993###;

    利用Thumbnailator解决了微服务接口调用影像缩略图问题,只需下载jar包,三两句代码,使用起来简单方便,赞!

    展开全文
  • google thumbnailator

    2018-04-15 14:40:49
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的...
  • Thumbnailator 0.4.8.jar

    2018-08-13 15:09:07
    Thumbnailator 0.4.8.jar 文件,可直接调用;它是用于生成像缩略图的 Java 类库。jar文件包含源代码及javadoc。
  • Thumbnailator.rar

    千次下载 热门讨论 2013-08-02 16:53:18
    Thumbnailator 是一个用来生成图像缩略图、裁切、旋转、添加水印等操作的 Java 类库,通过很简单的代码即可生成图片缩略图,也可直接对一整个目录的图片生成缩略图。
  • thumbnailator入门教程

    2014-01-24 14:13:22
    配合我上传的thumbnailator.jar,非常简单易学
  • thumbnailator-0.4.11.jar

    2020-04-21 11:36:46
    thumbnailator-0.4.11.jar下载,maven仓库下载不方便,将此jar下载到本地即可使用
  • thumbnailator.jar 好不容易找到了这个包,下载都很贵 ,我这边很便宜啊
  • thumbnailator图片处理

    2021-02-26 23:06:26
    笔者语录: 一直在学习,哈哈,只是好一阵子没有...准备工作:引入thumbnailator依赖。 <!-- https://mvnrepository.com/artifact/net.coobird/thumbnailator --> <dependency> <groupId>net.coobir
  • thumbnailator官方文档说明。最新版
  • 主要为大家详细介绍了Java图片处理开源框架Thumbnailator的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • thumbnailator-0.4.8 jar包

    2018-01-05 14:13:39
    thumbnailator-0.4.8 用于java中,生成缩略图,使用起来简洁方便
  • thumbnailator-0.4.8和说明

    2018-04-05 09:41:23
    thumbnailator-0.4.8的jar包,需要的可以直接下载,里面解压后,放入项目就可以
  • Thumbnailator处理图片

    2019-12-31 15:07:44
    111Thumbnailatorapisize-调整文件的大小width-设置文件宽度height-设置文件高度forceSize-设置缩略图的大小scale-设置缩略图的比例因子sourceRegion-指定要从中创建缩略图...Thumbnailator 官方网站:http://code....
  • Thumbnailator使用简介

    2020-05-23 08:54:09
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的...
  • 导包 就不解释了 ...thumbnailator.version>0.4.8</thumbnailator.version> </properties> <dependencies> <!-- thumbnailator 谷歌图片压缩工具 --> <dependency> ...
  • Thumbnailator-0.3.10.jar

    2015-03-06 09:21:32
    Thumbnailator-0.3.10.jar
  • 1. 背景 这几天碰巧手头上事情不是很...网上找了一圈,我看到一个开源插件 thumbnailator 比较符合我当前的需求,关于thumbnailator大家可以看下 thumbnailator官网 ,先了解它的基本特点,准备开始撸。 2. 基本使用 t
  • Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的...
  • Thumbnailator压缩图片

    2019-06-27 11:20:00
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,010
精华内容 404
关键字:

Thumbnailator