Skip to content

Commit

Permalink
update README
Browse files Browse the repository at this point in the history
  • Loading branch information
Gru110110110 committed Jun 26, 2017
2 parents 8d88f44 + 674d857 commit 9afe457
Showing 1 changed file with 31 additions and 7 deletions.
38 changes: 31 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
# Biscuit
[![](https://jitpack.io/v/pruas/Biscuit.svg)](https://jitpack.io/#pruas/Biscuit)

`Biscuit`是一个便捷的`android` 压缩图片库。由于微信是行业标杆,所以在写本库的时候,特意研究了下微信的压缩效果,以在小米`NOTE LTE`上为例,经过观察微信压缩效果,逆向推算出微信可能的压缩方式,发现微信很大概率上采用缩放压缩方式。于是本库采用两种压缩方式(采样率、缩放)供使用者选择使用,默认是采用和微信一样的缩放压缩方式并且效果非常接近!
`Biscuit`是一个便捷的`android` 压缩图片库。由于微信是行业标杆,所以在写本库的时候,特意研究了下微信的压缩效果,以在小米`NOTE LTE`上为例,经过观察微信压缩效果,逆向推算出微信可能的压缩方式,发现微信很大概率上采用缩放压缩方式。于是本库采用两种压缩方式(采样率、缩放)供使用者选择使用,默认是采用和微信类似的缩放压缩方式并且效果非常接近!

# 功能
* 可以单张或者批量进行压缩
* 可以自定义保存路径
* 可以自定义压缩后是否使用原图名字命名
* 可以自定义压缩质量范围
* 可以选择缩放压缩或者采样率压缩
* 可以自定义执行器
* 可以自定义是否忽略透明度(忽略则质量差些,大小也将减小一半)
* 压缩前检查是否会引发OOM风险,避免程序Crash
* 可以清除缓存
* 压缩后拓展名不变。
* 可以控制log输出
* 可以设置文件大小小于某个阈值的原图不压缩直接返回原图路径

# 压缩效果对比

Expand All @@ -13,7 +27,7 @@

![](https://github.com/pruas/Biscuit/blob/master/biscuit_compressed.png)

上图八张图片压缩数据对比
上图中八张图片压缩数据对比

原图 | `Biscuit` | `Wechat`
---- | ------ | ------
Expand All @@ -26,6 +40,8 @@
3120*4160/3.39MB|960*1280/93.5KB|960*1280/93.87KB
4160*3120/3.28MB|1280*960/72.57KB|1280*960/71.08KB

可以看到压缩后的图片宽高和微信非常一致!!!图片大小也几乎相等!!!

# Usage
Step 1. Add it in your root build.gradle at the end of repositories:
```gradle
Expand All @@ -39,7 +55,7 @@ Step 1. Add it in your root build.gradle at the end of repositories:
Step 2. Add the dependency
```gradle
dependencies {
compile 'com.github.pruas:Biscuit:v1.0'
compile 'com.github.pruas:Biscuit:v1.0.1'
}
```
Step 3. Use it wherever you need
Expand All @@ -49,20 +65,28 @@ Step 3. Use it wherever you need
.listener(mCompressListener)//压缩监听
.build();
```
Or you could customize like this
Or you can customize like this
```java
Biscuit.with(this)
.path(photos) //可以传入一张图片路径,也可以传入一个图片路径列表
.path(photos) //可以传入一张图片路径,也可以传入一个图片路径列表进行批量压缩
.loggingEnabled(true)//是否输出log 默认输出
// .quality(50)//质量压缩值(0...100)默认已经非常接近微信,所以没特殊需求可以不用自定义
.originalName(true) //使用原图名字来命名压缩后的图片,默认不使用原图名字,随机图片名字
.listener(mCompressListener)//压缩监听
.targetDir(FileUtils.getImageDir())//自定义压缩保存路径
// .executor(executor) //自定义实现执行,注意:必须在子线程中执行 默认使用AsyncTask线程池执行
// .ignoreAlpha(true)//忽略alpha通道,对图片没有透明度要求可以这么做,默认不忽略。
// .compressType(Biscuit.SAMPLE)//采用采样率压缩方式,默认是使用缩放压缩方式,也就是和微信的一样
// .compressType(Biscuit.SAMPLE)//采用采样率压缩方式,默认是使用缩放压缩方式,也就是和微信效果类似
.ignoreLessThan(100)//忽略小于100kb的图片不压缩,返回原图路径
.build();
```
Clear cache:
```java
Biscuit.clearCache(this);// default
```
or
```java
Biscuit.clearCache(FileUtils.getImageDir());//when you have set custom dir
```
# 说明
本库是在单一手机上测试,小米`Note 1080*1920`所以如果你在本库过程中遇到什么问题,欢迎给我提`Issues`
本库是在单一手机上测试,小米`Note 1080*1920`所以如果你在使用本库过程中遇到什么问题,欢迎给我提`Issues`

0 comments on commit 9afe457

Please sign in to comment.