/Compressor

An easy to use image compress library for Android.

Primary LanguageKotlinApache License 2.0Apache-2.0

An advanced image compress library for Android

License Version Code Grade Build Min Sdk Version Author QQ Group

中文版

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,

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.