Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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

Readme

License

Apache-2.0 license

Code of conduct

Code of conduct

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 2

Languages