乐趣区

文件系统图片处理基于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 新图(比例不变,见下图)


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 新图(比例不变,如下图)


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

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

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

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

TO BE CONTINUE !
关注公众号 watermelon_code 获取第一手的满足~

退出移动版