平时拍照没注意过这些,但涉及到开发就不行了。除了接口调用慢之类的问题外,还有一点,出于种种考虑,服务端没有使用文件存储,而是将图片做base64编码,然后存在数据库里。一个2~3M的图片base64下来有几百万个字符,虽然用longtext还是能存下的,但查询肉眼可见的慢。
于是考虑在Android端先做一下图片压缩,毕竟在本需求里甚至大多数需求里不会对图片质量有那么高的要求。Luban
图片压缩是很成熟的技术了,这次歪哥选用了人气很高的Luban工具,先看一下基本的使用。
首先引入依赖
压缩效果还是不错的,几兆的图片被压缩成100k左右,十倍以上的压缩比例了,对图片清晰度影响不是很大。base64之后也只有十几万字符了。
仿微信压缩策略据说Luban是仿照微信朋友圈图片的压缩策略,逆推出的压缩算法。属实有点东西,并且实用接地气,有人把两者做了对比,基本相差不多了。
除了Luban外,还有不少图片压缩工具,对于普通需求来说,可能都是够用的,不用特别纠结使用哪个。