Skip to content

An Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.

License

Notifications You must be signed in to change notification settings

wasabeef/transformers

Repository files navigation

What is Transformers?

An Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.


Part of the sample


Glide Transformations, Picasso Transformations, Fresco Processors are deprecated.
Development will stop soon.. For an up-to-date version, please use this.

Installation

Requirements

  • Android 5.0+ Lollipop (API level 21)

Gradle settings

repositories { mavenCentral() }

This Transformer is NOT using android.support.v8.rendererscript because librs.so make the APK file too big.

For Coil

dependencies { implementation 'jp.wasabeef.transformers:coil:1.0.6' // Use the GPU Filters  implementation 'jp.wasabeef.transformers:coil-gpu:1.0.6' }
imageView.load(IMAGE_URL) { transformations( CropCenterTransformation(), RoundedCornersTransformation(radius = 120, cornerType = CornerType.DIAGONAL_FROM_TOP_LEFT) ) }

For Glide

dependencies { implementation 'jp.wasabeef.transformers:glide:1.0.6' // Use the GPU Filters  implementation 'jp.wasabeef.transformers:glide-gpu:1.0.6' }
Glide.with(context) .load(IMAGE_URL) .apply( bitmapTransform( MultiTransformation( CropCenterTransformation(), BlurTransformation(context, 15, sampling = 1) ) ) ).into(imageView)

For Picasso

dependencies { implementation 'jp.wasabeef.transformers:picasso:1.0.6' // Use the GPU Filters  implementation 'jp.wasabeef.transformers:picasso-gpu:1.0.6' }
Picasso.get() .load(IMAGE_URL) .fit().centerInside() .transform( mutableListOf( CropCenterTransformation(), BlurTransformation(context, 25, sampling = 4) ) ).into(imageView)

For Fresco

dependencies { implementation 'jp.wasabeef.transformers:fresco:1.0.6' // Use the GPU Filters  implementation 'jp.wasabeef.transformers:fresco-gpu:1.0.6' }
val request: ImageRequest = ImageRequestBuilder.newBuilderWithSource(IMAGE_URL.toUri()) .setPostprocessor(BlurPostprocessor(context, 25, 4)) .build() holder.image.controller = Fresco.newDraweeControllerBuilder() .setImageRequest(request) .setOldController(draweeView.controller) .build()

With Jetpack Compose

Use Composable Images when using with Jetpack Compose.

GlideImage( model = IMAGE_URL, modifier = Modifier.preferredWidth(120.dp), options = RequestOptions().transform( BlurTransformation(context, radius = 25, sampling = 4) ) )

Sample transformations

Original Mask NinePatchMask CropTop
CropCenter CropBottom CropCenterRatio16x9 CropCenterRatio4x3
CropTopRatio16x9 CropBottomRatio4x3 CropSquare CropCircle
CropCircleWithBorder ColorFilter Grayscale RoundedCorners
RoundedCornersTopLeft RSGaussianBlurLight RSGaussianBlurDeep StackBlurLight
StackBlurDeep

coil, glide, picasso

  • BlurTransformation
  • ColorFilterTransformation
  • CropCenterBottomTransformation
  • CropCenterTopTransformation
  • CropCenterTransformation
  • CropCircleTransformation
  • CropCircleWithBorderTransformation
  • CropSquareTransformation
  • CropTransformation
  • GrayscaleTransformation
  • MaskTransformation
  • RoundedCornersTransformation

fresco

  • BlurPostprocessor
  • ColorFilterPostprocessor
  • CombinePostProcessors
  • GrayscalePostprocessor
  • MaskPostprocessor

Sample transformations with GPUImage

We recommend that you have a ToneCurve file, as you can apply any filters you like.

Original Sepia Contrast Invert
PixelLight PixelDeep Sketch Swirl
Brightness Kuawahara Vignette ZoomBlur
WhiteBalance Halftone Sharpness Toon
ToneCurve

coil-gpu, glide-gpu, picasso-gpu

  • BrightnessFilterTransformation
  • ContrastFilterTransformation
  • HalftoneFilterTransformation
  • InvertFilterTransformation
  • KuwaharaFilterTransformation
  • PixelationFilterTransformation
  • SepiaFilterTransformation
  • SharpenFilterTransformation
  • SketchFilterTransformation
  • SwirlFilterTransformation
  • ToneCurveFilterTransformation
  • ToonFilterTransformation
  • VignetteFilterTransformation
  • WhiteBalanceFilterTransformation
  • ZoomBlurFilterTransformation

fresco-gpu

  • BrightnessFilterPostprocessor
  • ContrastFilterPostprocessor
  • HalftoneFilterPostprocessor
  • InvertFilterPostprocessor
  • KuwaharaFilterPostprocessor
  • PixelationFilterPostprocessor
  • SepiaFilterPostprocessor
  • SharpenFilterPostprocessor
  • SketchFilterPostprocessor
  • SwirlFilterPostprocessor
  • ToneCurveFilterPostprocessor
  • ToonFilterPostprocessor
  • VignetteFilterPostprocessor
  • WhiteBalanceFilterPostprocessor
  • ZoomBlurFilterPostprocessor

Development

Setup

Things you will need

$ npm install 

Build

$ ./gradlew assemble 

Formatting

$ ./gradlew ktlint 

Publishing to Maven Central

$ ./gradlew :core:clean :core:build :core:publish .... .... 

About

An Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 2

  •  
  •  

Languages