Need help with transformers?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

wasabeef
199 Stars 11 Forks Apache License 2.0 149 Commits 1 Opened issues

Description

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

Services available

!
?

Need anything else?

Contributors list

# 323
Kotlin
Java
Android
android...
138 commits

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.4'
  // Use the GPU Filters 
  implementation 'jp.wasabeef.transformers:coil-gpu:1.0.4'
}
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.4'
  // Use the GPU Filters 
  implementation 'jp.wasabeef.transformers:glide-gpu:1.0.4'
}
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.4'
  // Use the GPU Filters 
  implementation 'jp.wasabeef.transformers:picasso-gpu:1.0.4'
}
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.4'
  // Use the GPU Filters 
  implementation 'jp.wasabeef.transformers:fresco-gpu:1.0.4'
}
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
....
....

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.