无敌了,Google 顶级项目开源了!!!
共 1810字,需浏览 4分钟
·
2021-05-05 13:06
1、咱们的诉求
大家好,作为开发者,平时在开发的过程中,图片处理的需求,想必很多朋友都会用到,比如这些功能:
图片缩放(按照指定大小缩放、按比例缩放)
图片旋转
图片添加水印
图片裁剪
图片格式转换等
然而,图片处理的开源框架并不多,网络上流传的一些代码,虽然可以实现这些功能,但是大多数用起来都特别的繁琐。
为了解决这个问题,我在网上找了很久,功夫不负有心人,终于找到了一款特别好用的开源框架,拿出来和大家分享。
2、图片处理一哥:Thumbnailator
Thumbnailator是 Google 开源的一款图片处理 java 类库,谷歌这个公司,就不用多说了吧,技术在全球都能够排上号的,所以他们开源的东西,基本上都是顶级的,Thumbnailator 算是目前开源项目中,最优秀的图片处理软件,暂时还没有发现比这个更好用的。
这款软件可以实现上面所提到的所有功能,并且用起来特别的方便,性能也特别的高。
先来几个案例,感受一下他的威力
将图片缩放到 200×300 的大小
Thumbnails.of("源图片文件")
.size(200, 300)
.toFile("目标图片文件");
将图片按等比例缩放到 1/4 大小
Thumbnails.of("images/a380_1280x1024.jpg")
.scale(0.25f)
.toFile("c:/a380_25%.jpg");
旋转图片 90 度
Thumbnails.of("images/a380_1280x1024.jpg")
.rotate(90)
.toFile("c:/a380_rotate+90.jpg");
添加水印图片
//watermark(位置,水印图,透明度)
Thumbnails.of("images/a380_1280x1024.jpg")
.size(1280,1024)
.watermark(Positions.BOTTOM_RIGHT,ImageIO.read(newFile("images/watermark.png")),0.5f)
.outputQuality(0.8f)
.toFile("c:/a380_watermark_bottom_right.jpg");
看了上面的代码,大家的感觉是什么?
是不是代码特别的简洁,确实,如果大家用过谷歌开源的其他框架,比如 guava,都会有同样的特色,代码特别的简洁,可能实现某个功能其内部的代码很复杂,但是谷歌的开发者将复杂的细节都给屏蔽了,让开发者用起来就是爽,看来牛逼的公司就是不一样啊。
好了,这个库内部还有更多好用的功能,这里就不细说了,github 上都有,百度 thumbnailator 也会出来很多资料,这里就不一一介绍了。
本文的主要目的是让大家知道图片处理有这么好的一个解决方案,如果大家以后有处理图片的需求,能够想到这个解决方案,这篇文章的目的也就达到了,至少能够让大家少走一些弯路。
3、git 地址
这个库是 java 开发的,源码在 github 上,大家都可以看到,有兴趣的也可以对其进行扩展
https://github.com/coobird/thumbnailator
4、领取《月薪 5 万计算机必读电子书》
计算机必读电子书,进行了详细的分类,自己整理的,绝不是在网上那种打包下载的,而是自己需要学到某个方向的时候去网上挨个找的,最后汇总而成,这部分我是会不断把它完善的,当成自己的小电子书库,不多,但贵在精。
获取方式,点击下面链接,发送:计算机