An Android transformation library providing a variety of image transformations for Picasso

Overview

Picasso Transformations

Android Arsenal License Maven Central

An Android transformation library providing a variety of image transformations for Picasso.

Please feel free to use this.

Are you using Glide or Fresco?

Glide Transformations
Fresco Processors

Demo

Original Image

Transformations

How do I use it?

Step 1

Gradle

repositories {
    mavenCentral()
}

dependencies {
    compile 'jp.wasabeef:picasso-transformations:2.4.0'
    // If you want to use the GPU Filters
    compile 'jp.co.cyberagent.android:gpuimage:2.1.0
}

Step 2

Set Picasso Transform.

Picasso.with(mContext).load(R.drawable.demo)
    .transform(transformation).into((ImageView) findViewById(R.id.image));

Advanced Step 3

You can set a multiple transformations.

Picasso.with(mContext).load(R.drawable.demo)
    .transform(transformation)
    .transform(new CropCircleTransformation())
    .into(holder.image);

Transformations

Crop

CropTransformation, CropCircleTransformation, CropSquareTransformation, RoundedCornersTransformation

Color

ColorFilterTransformation, GrayscaleTransformation

Blur

BlurTransformation

Mask

MaskTransformation

GPU Filter (use GPUImage)

Will require add dependencies for GPUImage.

ToonFilterTransformation, SepiaFilterTransformation, ContrastFilterTransformation InvertFilterTransformation, PixelationFilterTransformation, SketchFilterTransformation SwirlFilterTransformation, BrightnessFilterTransformation, KuwaharaFilterTransformation VignetteFilterTransformation

Applications using Picasso Transformations

Please ping me or send a pull request if you would like to be added here.

Icon Application
Ameba Ownd
QuitNow!

Developed By

Daichi Furiya (Wasabeef) - [email protected]

Follow me on Twitter

Thanks

License

Copyright (C) 2020 Wasabeef

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.
Comments
  • Enhanced crop

    Enhanced crop

    Added: horizontal gravity crop to aspect ratio crop to width/height as a ratio of original image's width/height crop to exact area (specify left and top) javadoc examples to the bottom of the example app's list

    opened by molexx 5
  • BlurTransformation not work for me

    BlurTransformation not work for me

    already add renderscript in build.gradle:

     defaultConfig {
            applicationId "xxx"
            minSdkVersion 15
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
            renderscriptSupportModeEnabled true
        }
    

    when i build the project:

        Path in archive: lib/armeabi-v7a/libblasV8.so
    Error:duplicate files during packaging of APK /Users/rowandjj/AndroidStudioProjects/PaimaiNews/app/build/outputs/apk/app-debug-unaligned.apk
        Origin 1: /Users/rowandjj/Library/Android/sdk/build-tools/23.0.1/renderscript/lib/packaged/armeabi-v7a/libblasV8.so
        Origin 2: /Users/rowandjj/AndroidStudioProjects/PaimaiNews/app/build/intermediates/exploded-aar/jp.wasabeef/picasso-transformations/1.3.0/jni/armeabi-v7a/libblasV8.so
    

    so i exclude those .so file by packingOptions:

        packagingOptions{
            exclude 'lib/armeabi-v7a/libblasV8.so'
            exclude 'lib/armeabi-v7a/librsjni.so'
            exclude 'lib/armeabi-v7a/libRSSupport.so'
            exclude 'lib/mips/libblasV8.so'
            exclude 'lib/mips/librsjni.so'
            exclude 'lib/mips/libRSSupport.so'
            exclude 'lib/x86/libblasV8.so'
            exclude 'lib/x86/librsjni.so'
            exclude 'lib/x86/libRSSupport.so'
        }
    

    but it not worked either.....

    what should i do?

    opened by Rowandjj 3
  • unable to add from jcenter in android studio 1.3.2

    unable to add from jcenter in android studio 1.3.2

    Couldn't get this library from jcenter

    Anything I missed here?

    image

    buildscript { repositories {

        mavenCentral()
        jcenter()
    }
    
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
    }
    

    }

    repositories { mavenCentral()

    // for using SNAPSHOT
    //maven {
    //    url uri('https://oss.sonatype.org/content/repositories/snapshots/')
    //}
    

    }

    apply plugin: 'com.android.application'

    dependencies { compile project(':library') // Or, fetch from Maven: // compile 'com.google.maps.android:android-maps-utils:0.3+' compile 'com.android.support:support-v4:22.2.0' compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.google.android.gms:play-services:7.8.0' compile 'com.squareup.picasso:picasso:2.5.2' compile 'org.jsoup:jsoup:1.8.2' compile 'jp.wasabeef:picasso-transformations:1.2.0' // If you want to use the GPU Filters //compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.3.0' compile project(':appiraterAndroid') }

    android { compileSdkVersion 22 buildToolsVersion "22.0.1"

    defaultConfig {
        applicationId "com.teamhj.agriweather"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1010
        versionName "1.0.10"
        renderscriptTargetApi 22
        renderscriptSupportModeEnabled true
    }
    buildTypes {
    
        debug {
            debuggable true
        }
    
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
        }
    }
    
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
        }
    }
    

    }

    task startDemo(type: Exec) { dependsOn 'installDebug' def adb = new File("${System.env.ANDROID_HOME}", "platform-tools${File.separator}adb") commandLine adb, "shell", "am", "start", "-n", "com.google.maps.android.utils.demo/.MainActivity" }

    opened by ksy5662 3
  • Cannot compile with proguard

    Cannot compile with proguard

    Since #36 It throws an error compiling:

    Warning:Exception while processing task java.io.IOException: proguard.ParseException: Unknown option 'com.squareup.okhttp' in line 3 of file '/Users/user/.gradle/caches/transforms-1/files-1.1/picasso-transformations-2.2.0.aar/16c5d97f0c603c4db20540986cd71722/proguard.txt'

    In picasso-transformations/transformations/proguard-rules.txt it says: -dontwarn dontwarn com.squareup.okhttp I think it should be: -dontwarn com.squareup.okhttp

    opened by nrodriguez-tupaca 2
  • Crop not working as expected?

    Crop not working as expected?

    CropCenter isn't doing what I expect in the example app. The demo.jpg is 640x359 and the CropCenter example crops it to 300x100 center - I would expect the resulting image to just about cover the dogs' heads but it seems to be full width as you can see the red stripe on the far left of the first dog and the wicker basket on the shelf on the right?

    What I expect it to look like: demo_center_crop_300_100

    Screenshot from demo app: image

    opened by molexx 2
  • CropCircleTransformation creates an extra Bitmap

    CropCircleTransformation creates an extra Bitmap

    I believe it's not necessary to create squaredBitmap. Instead, the BitmapShader can be given a Matrix that has setTranslate(-width, -height). This should accomplish the same thing that creating squaredBitmap does, shifting the viewport on source so that its centre is drawn into bitmap.

    opened by pushbit 2
  • Build failed with duplicate libraries

    Build failed with duplicate libraries

    Couldn't build my project with your library included.

    Error:duplicate files during packaging of APK /app/build/outputs/apk/app-debug-unaligned.apk Path in archive: lib/armeabi-v7a/libblasV8.so Origin 1: /app/build/intermediates/exploded-aar/jp.wasabeef/picasso-transformations/1.3.1/jni/armeabi-v7a/libblasV8.so Origin 2: /build-tools/23.0.2/renderscript/lib/packaged/armeabi-v7a/libblasV8.so You can ignore those files in your build.gradle: android { packagingOptions { exclude 'lib/armeabi-v7a/libblasV8.so' } } Error:Execution failed for task ':app:packageDebug'.

    Duplicate files copied in APK lib/armeabi-v7a/libblasV8.so File 1: /app/build/intermediates/exploded-aar/jp.wasabeef/picasso-transformations/1.3.1/jni/armeabi-v7a/libblasV8.so File 2: /build-tools/23.0.2/renderscript/lib/packaged/armeabi-v7a/libblasV8.so

    I tried excluding the lib from packaging options as suggested by the compiler, but it didn't work. That could be a problem on my end. I'll be going with another library in any case. I also tried

    opened by Ethan-Velosys 1
  • Add gpuimage-library dependency to POM

    Add gpuimage-library dependency to POM

    It would be nice if the POM included the gpuimage-library dependency, so that it will be downloaded automatically with picasso-transformations and we don't have to add that additional dependency to our projects.

    opened by pushbit 1
  • Fix un-closed resources in RSBlur

    Fix un-closed resources in RSBlur

    Some resources in RSBlur were not being closed properly. This was showing up in StrictMode logging. Added destroy() calls to the finally block.

    E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. java.lang.Throwable: Explicit termination method 'destroy' not called at dalvik.system.CloseGuard.open(CloseGuard.java:180) at android.renderscript.Type.<init>(Type.java:230) at android.renderscript.Type$Builder.create(Type.java:480) at android.renderscript.Allocation.typeFromBitmap(Allocation.java:2777) at android.renderscript.Allocation.createFromBitmap(Allocation.java:2811) at jp.wasabeef.picasso.transformations.internal.RSBlur.blur(RSBlur.java:37) at jp.wasabeef.picasso.transformations.BlurTransformation.transform(BlurTransformation.java:68) at com.squareup.picasso.BitmapHunter.applyCustomTransformations(BitmapHunter.java:429) at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:238) at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411)

    E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. java.lang.Throwable: Explicit termination method 'destroy' not called at dalvik.system.CloseGuard.open(CloseGuard.java:180) at android.renderscript.Allocation.<init>(Allocation.java:421) at android.renderscript.Allocation.<init>(Allocation.java:425) at android.renderscript.Allocation.createFromBitmap(Allocation.java:2833) at jp.wasabeef.picasso.transformations.internal.RSBlur.blur(RSBlur.java:37) at jp.wasabeef.picasso.transformations.BlurTransformation.transform(BlurTransformation.java:68) at com.squareup.picasso.BitmapHunter.applyCustomTransformations(BitmapHunter.java:429) at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:238) at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411)

    E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. java.lang.Throwable: Explicit termination method 'destroy' not called at dalvik.system.CloseGuard.open(CloseGuard.java:180) at android.renderscript.Allocation.<init>(Allocation.java:421) at android.renderscript.Allocation.<init>(Allocation.java:425) at android.renderscript.Allocation.createTyped(Allocation.java:2676) at android.renderscript.Allocation.createTyped(Allocation.java:2707) at jp.wasabeef.picasso.transformations.internal.RSBlur.blur(RSBlur.java:39) at jp.wasabeef.picasso.transformations.BlurTransformation.transform(BlurTransformation.java:68) at com.squareup.picasso.BitmapHunter.applyCustomTransformations(BitmapHunter.java:429) at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:238) at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411)

    E/StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. java.lang.Throwable: Explicit termination method 'destroy' not called at dalvik.system.CloseGuard.open(CloseGuard.java:180) at android.renderscript.Script.<init>(Script.java:345) at android.renderscript.ScriptIntrinsic.<init>(ScriptIntrinsic.java:29) at android.renderscript.ScriptIntrinsicBlur.<init>(ScriptIntrinsicBlur.java:30) at android.renderscript.ScriptIntrinsicBlur.create(ScriptIntrinsicBlur.java:50) at jp.wasabeef.picasso.transformations.internal.RSBlur.blur(RSBlur.java:40) at jp.wasabeef.picasso.transformations.BlurTransformation.transform(BlurTransformation.java:68) at com.squareup.picasso.BitmapHunter.applyCustomTransformations(BitmapHunter.java:429) at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:238) at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411)

    opened by mccrajs 0
  • Need to apply effect on image and send to server

    Need to apply effect on image and send to server

    Hello,

    Thanks for the library , this was what i needed!

    It always go in onPrepareLoad and then onBitmapFailed! and errorDrawable is null.

    Picasso.with(CameraActivity.this).load(filename) .transform(new SwirlFilterTransformation(CameraActivity.this)).into(new Target() { @Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { imageView.setImageBitmap(bitmap); bmp = bitmap; }

                    @Override
                    public void onBitmapFailed(Drawable errorDrawable) {
    
                    }
    
                    @Override
                    public void onPrepareLoad(Drawable placeHolderDrawable) {
    
                    }
                });
    
    opened by sana080 0
  • CropTransformation(left,top,width,height)

    CropTransformation(left,top,width,height)

    always set left and top to "(source.getWidth() - mWidth) / 2" and "(source.getHeight() - mHeight) / 2" while it should be the value of left and top pass in parameter ...

    opened by yoann217 0
  • Bintray will shutdown May 1st

    Bintray will shutdown May 1st

    Bintray will end service on May 1st. Will you be moving the artifacts to another hosting solution or should we roll our own distributions? https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/

    opened by ToxicBakery 1
  • how to add Blur Effect using Kotlin

    how to add Blur Effect using Kotlin

    I am sorry if this is trivial, but I am a beginner. and currently I am using Kotlin. I want to blur my image after downloading using picasso.

    and here is the code I use:

    Picasso.get()
               .load(currentEvent.posterDownloadPath)
               .transform(BlurTransformation(25,3))
               .into(recommendedEventViewHolder.blurryImageView)
    

    but unfortunately I have error like in this image: https://i.stack.imgur.com/Nvq53.png

    so how to properly use BlurTransformation effect ?

    opened by AgungLaksana 1
  • BlurTransform not working sometimes

    BlurTransform not working sometimes

    I can't recognize what is going wrong please help. My code :

    `Picasso.with(PlayScreenActivity.this)
                        .load(uri)
                        .transform(new BlurTransformation(this,25,10))
                        .placeholder(R.drawable.ic_default)
                        .error(R.drawable.ic_default)
                        .into(new Target() {
                            @Override
                            public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
                            }
    
                            @Override
                            public void onBitmapFailed(Drawable errorDrawable) {
                            }
    
                            @Override
                            public void onPrepareLoad(Drawable placeHolderDrawable) {
                            }
                        });`
    

    See the crashlytic log report

    Fatal Exception: java.lang.RuntimeExceptionTransformation BlurTransformation(radius=25, sampling=10) crashed with exception. 

      | com.a.a.c$3.run (BitmapHunter.java:434)   | android.os.Handler.handleCallback (Handler.java:739)   | com.android.internal.os.ZygoteInit.main (ZygoteInit.java:779)

    Caused by java.lang.IllegalArgumentException width and height must be > 0    | android.graphics.Bitmap.createBitmap (Bitmap.java:866)   | android.graphics.Bitmap.createBitmap (Bitmap.java:812)   | b.a.a.a.a.a (BlurTransformation.java:58)   | com.a.a.c.a (BitmapHunter.java:429)   | com.a.a.c.a (BitmapHunter.java:238)   | com.a.a.c.run (BitmapHunter.java:159)   | java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:422)   | java.lang.Thread.run (Thread.java:818)   | com.a.a.ah$d.run (Utils.java:411)

    opened by Touchunit 0
  • RuntimeException: Transformation BlurTransformation(radius=15, sampling=5) crashed with exception

    RuntimeException: Transformation BlurTransformation(radius=15, sampling=5) crashed with exception

    Device: apiLevel - 15 (4.0.4) ZTE - model Grand X In

    Cannot reproduce on my devices, reported from user device on production app.

    Stack trace:

    java.lang.RuntimeException: Transformation BlurTransformation(radius=15, sampling=5) crashed with exception. at com.squareup.picasso.BitmapHunter$3.run(BitmapHunter.java:434) at android.os.Handler.handleCallback(Handler.java:605) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4424) at java.lang.reflect.Method.invokeNative(Method.java:-2) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) at dalvik.system.NativeStart.main(NativeStart.java:-2) Caused by: java.lang.ArrayIndexOutOfBoundsException: length=65536; index=65538 at jp.wasabeef.picasso.transformations.internal.FastBlur.blur(FastBlur.java:125) at jp.wasabeef.picasso.transformations.BlurTransformation.transform(BlurTransformation.java:73) at com.squareup.picasso.BitmapHunter.applyCustomTransformations(BitmapHunter.java:429) at com.squareup.picasso.BitmapHunter.hunt(BitmapHunter.java:238) at com.squareup.picasso.BitmapHunter.run(BitmapHunter.java:159) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:442) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) at java.util.concurrent.FutureTask.run(FutureTask.java:137) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) at java.lang.Thread.run(Thread.java:856) at com.squareup.picasso.Utils$PicassoThread.run(Utils.java:411)

    opened by kenumir 0
Owner
Daichi Furiya
Google Developers Expert for Android
Daichi Furiya
An image loading and caching library for Android focused on smooth scrolling

Glide | View Glide's documentation | 简体中文文档 | Report an issue with Glide Glide is a fast and efficient open source media management and image loading

Bump Technologies 33.2k Jan 7, 2023
A powerful image downloading and caching library for Android

Picasso A powerful image downloading and caching library for Android For more information please see the website Download Download the latest AAR from

Square 18.4k Jan 6, 2023
An android image compression library.

Compressor Compressor is a lightweight and powerful android image compression library. Compressor will allow you to compress large photos into smaller

Zetra 6.7k Jan 9, 2023
Library to handle asynchronous image loading on Android.

WebImageLoader WebImageLoader is a library designed to take to hassle out of handling images on the web. It has the following features: Images are dow

Alexander Blom 102 Dec 22, 2022
🍂 Jetpack Compose image loading library which can fetch and display network images using Glide, Coil, and Fresco.

?? Jetpack Compose image loading library which can fetch and display network images using Glide, Coil, and Fresco.

Jaewoong Eum 1.4k Jan 2, 2023
Compose Image library for Kotlin Multiplatform.

Compose ImageLoader Compose Image library for Kotlin Multiplatform. Setup Add the dependency in your common module's commonMain sourceSet kotlin {

Seiko 45 Dec 29, 2022
Android Asynchronous Networking and Image Loading

Android Asynchronous Networking and Image Loading Download Maven Git Features Kotlin coroutine/suspend support Asynchronously download: Images into Im

Koushik Dutta 6.3k Dec 27, 2022
Image loading for Android backed by Kotlin Coroutines.

An image loading library for Android backed by Kotlin Coroutines. Coil is: Fast: Coil performs a number of optimizations including memory and disk cac

Coil 8.8k Jan 8, 2023
Image Picker for Android 🤖

Image Picker for Android ??

Esa Firman 1k Dec 31, 2022
Luban(鲁班)—Image compression with efficiency very close to WeChat Moments/可能是最接近微信朋友圈的图片压缩算法

Luban ?? English Documentation Luban(鲁班) —— Android图片压缩工具,仿微信朋友圈压缩策略。 Luban-turbo —— 鲁班项目的turbo版本,查看trubo分支。 写在前面 家境贫寒,工作繁忙。只能不定期更新,还望网友们见谅! 项目描述 目前做A

郑梓斌 13.1k Jan 7, 2023
ZoomableComposeImage - A zoomable image for jetpack compose

ZoomableComposeImage - A zoomable image for jetpack compose

RERERE 10 Dec 11, 2022
ComposeImageBlurhash is a Jetpack Compose component with the necessary implementation to display a blurred image

compose-image-blurhash ComposeImageBlurhash is a Jetpack Compose component with the necessary implementation to display a blurred image while the real

Orlando Novas Rodriguez 24 Nov 18, 2022
Easy to use, lightweight custom image view with rounded corners.

RoundedImageView Easy to use, lightweight custom image view with rounded corners. Explore the docs » View Demo · Report Bug · Request Feature About Th

Melik Mehmet Özyildirim 6 Dec 23, 2021
load-the-image Apply to compose-jb(desktop), Used to load network and local pictures.

load-the-image load-the-image Apply to compose-jb(desktop), Used to load network and local pictures. ?? Under construction It may change incompatibly

lt_taozi 13 Dec 29, 2022
Powerful and flexible library for loading, caching and displaying images on Android.

Universal Image Loader The great ancestor of modern image-loading libraries :) UIL aims to provide a powerful, flexible and highly customizable instru

Sergey Tarasevich 16.8k Jan 8, 2023
An Android library for managing images and the memory they use.

Fresco Fresco is a powerful system for displaying images in Android applications. Fresco takes care of image loading and display, so you don't have to

Facebook 16.9k Jan 8, 2023
Photo picker library for android. Let's you pick photos directly from files, or navigate to camera or gallery.

ChiliPhotoPicker Made with ❤️ by Chili Labs. Library made without DataBinding, RxJava and image loading libraries, to give you opportunity to use it w

Chili Labs 394 Jan 2, 2023
Glide Bitmap Pool is a memory management library for reusing the bitmap memory

Glide Bitmap Pool About Glide Bitmap Pool Glide Bitmap Pool is a memory management library for reusing the bitmap memory. As it reuses bitmap memory ,

AMIT SHEKHAR 573 Dec 31, 2022
Andorid library that loads images asynchronously into cache using a thread pool

AndroidImageLoader AndroidImageLoader is a fork of the Image Loader component in libs-for-android. The AndroidImageLoader is an Android library that h

David Wu 63 Feb 19, 2019