文件系统【图片处理】(基于thumbnailator)典藏版-壹

很多系统开发中都会碰到文件相关的处理,最近顺手开发一个小型文件系统的过程中碰到图片缩略图的需求,需要在显示的时候提供缩略图,下载的时候提供原图,大家直接想到的可能是java自带的图片处理类,但是处理过于复杂,无法满足需求,特别是在水印等方面支持的不太好,老样子,直接发轮子,接好了~

简单介绍下今天的轮子吧:

thumbnailator

  • google开发并维护
  • github开源
  • 不依赖于外部库
  • 操作超级简单(真的超级简单)

action

ONE.按照原图缩小(原图001.jpg-->002.jpg):

Thumbnails.of(new File("F://001.jpg"))
              .size(500, 500)
              .toFile(new File("F://002.jpg"));

原图大小:6848 KB --> 42 KB 新图(比例不变,见下图)

文件系统【图片处理】(基于thumbnailator)典藏版-壹_第1张图片

TWO.按照原图放大(原图001.jpg-->002.jpg):

Thumbnails.of(new File("F://002.jpg"))
              .size(1500, 1500)
              .toFile(new File("F://003.jpg"));

原图大小:42 KB --> 174 KB 新图(比例不变,如下图)

文件系统【图片处理】(基于thumbnailator)典藏版-壹_第2张图片

除了便捷的放大缩小,直接生成文件之外。
还可以转换文件格式、支持直接生成输出流等等,代码:

OutputStream os = ...;
        
Thumbnails.of("F://001.jpg")
        .size(200, 200)
        .outputFormat("png")
        .toOutputStream(os);

相比原有的方案是不是贼方便,基本上代码不超过5行,解决了50行都不一定能解决的问题,今天分享到这里,后面见更多thumbnailator的用法分享。

其实很多时候,我们只需要鱼,而不是渔,呐,给你鱼。

TO BE CONTINUE !

关注公众号 watermelon_code 获取第一手的满足~

你可能感兴趣的:(文件系统【图片处理】(基于thumbnailator)典藏版-壹)