Class CircleCrop

java.lang.Object
com.bumptech.glide.load.resource.bitmap.BitmapTransformation
com.bumptech.glide.load.resource.bitmap.CircleCrop
All Implemented Interfaces:
Key, Transformation<Bitmap>

public class CircleCrop extends BitmapTransformation
A Glide BitmapTransformation to circle crop an image. Behaves similar to a FitCenter transform, but the resulting image is masked to a circle.

Uses a PorterDuff blend mode, see http://ssp.impulsetrain.com/porterduff.html.

  • Constructor Details

    • CircleCrop

      public CircleCrop()
  • Method Details

    • transform

      protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight)
      Description copied from class: BitmapTransformation
      Transforms the given Bitmap based on the given dimensions and returns the transformed result.

      The provided Bitmap, toTransform, should not be recycled or returned to the pool. Glide will automatically recycle and/or reuse toTransform if the transformation returns a different Bitmap. Similarly implementations should never recycle or return Bitmaps that are returned as the result of this method. Recycling or returning the provided and/or the returned Bitmap to the pool will lead to a variety of runtime exceptions and drawing errors. See #408 for an example. If the implementation obtains and discards intermediate Bitmaps, they may safely be returned to the BitmapPool and/or recycled.

      outWidth and outHeight will never be Target.SIZE_ORIGINAL, this class converts them to be the size of the Bitmap we're going to transform before calling this method.

      Specified by:
      transform in class BitmapTransformation
      Parameters:
      pool - A BitmapPool that can be used to obtain and return intermediate Bitmaps used in this transformation. For every Bitmap obtained from the pool during this transformation, a Bitmap must also be returned.
      toTransform - The Bitmap to transform.
      outWidth - The ideal width of the transformed bitmap (the transformed width does not need to match exactly).
      outHeight - The ideal height of the transformed bitmap (the transformed height does not need to match exactly).
    • equals

      public boolean equals(Object o)
      Description copied from interface: Key
      For caching to work correctly, implementations must implement this method and Key.hashCode().
      Specified by:
      equals in interface Key
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Description copied from interface: Key
      For caching to work correctly, implementations must implement this method and Key.equals(Object).
      Specified by:
      hashCode in interface Key
      Overrides:
      hashCode in class Object
    • updateDiskCacheKey

      public void updateDiskCacheKey(@NonNull MessageDigest messageDigest)
      Description copied from interface: Key
      Adds all uniquely identifying information to the given digest.

      Note - Using MessageDigest.reset() inside of this method will result in undefined behavior.