An advanced image compress library for Android
An advanced image compress library for Android. Allow you to custom
- Image source types (Uri/File/bitmap/Byte array/Custom...)
- Result image types (Bitmap/File)
- Compress task execution mode (Blocking/RxJava/Kotlin coroutines/AsyncTask)
- Image compress algorithms
To use the library, to add maven central at first,
repositories { mavenCentral() }
then, add our library in your dependency:
implementation 'com.github.Shouheng88:compressor:latest-version'
Sample: to compress an Uri image, try to get result as File and launch in kotlin coroutines. The code will be,
GlobalScope.launch {
val result = Compress.with(context, file.uri(context))
.setQuality(80)
.concrete {
withMaxWidth(100f)
withMaxHeight(100f)
withScaleMode(ScaleMode.SCALE_HEIGHT)
withIgnoreIfSmaller(true)
}
.get(Dispatchers.IO)
withContext(Dispatchers.Main) {
Glide.with(context).load(result).into(binding.iv6)
}
}
The library allows you to cusotm a lot. So,
- To learn more usage, please read Sample Codes.
- To learn how to custom algorithm, please read sample for custom algorithm.
- To learn how to custom image sources, please read sample for custom image sources.
License
Copyright (c) 2019-2021 Shouheng Wang.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.