Class BitmapTransformation

  extended by com.bumptech.glide.load.resource.bitmap.BitmapTransformation
All Implemented Interfaces:
Direct Known Subclasses:
CenterCrop, FitCenter

public abstract class BitmapTransformation
extends Object
implements Transformation<Bitmap>

A simple Transformation for transforming Bitmaps that abstracts away dealing with Resource objects for subclasses. Use cases will look something like this:

 public class FillSpace extends BaseBitmapTransformation {
     public Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
         if (toTransform.getWidth() == outWidth && toTransform.getHeight() == outHeight) {
             return toTransform;

         return Bitmap.createScaledBitmap(toTransform, outWidth, outHeight, true);

Constructor Summary
BitmapTransformation(BitmapPool bitmapPool)
BitmapTransformation(Context context)
Method Summary
protected abstract  Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight)
          Transforms the given Bitmap based on the given dimensions and returns the transformed result.
 Resource<Bitmap> transform(Resource<Bitmap> resource, int outWidth, int outHeight)
          Transforms the given resource and returns the transformed resource.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.bumptech.glide.load.Transformation

Constructor Detail


public BitmapTransformation(Context context)


public BitmapTransformation(BitmapPool bitmapPool)
Method Detail


public final Resource<Bitmap> transform(Resource<Bitmap> resource,
                                        int outWidth,
                                        int outHeight)
Description copied from interface: Transformation
Transforms the given resource and returns the transformed resource.

Note - If the original resource object is not returned, the original resource will be recycled and it's internal resources may be reused. This means it is not safe to rely on the original resource or any internal state of the original resource in any new resource that is created. Usually this shouldn't occur, but if absolutely necessary either the original resource object can be returned with modified internal state, or the data in the original resource can be copied into the transformed resource.

Specified by:
transform in interface Transformation<Bitmap>
resource - The resource to transform.
outWidth - The width of the view or target the resource will be displayed in, or Target.SIZE_ORIGINAL to indicate the original resource width.
outHeight - The height of the view or target the resource will be displayed in, or Target.SIZE_ORIGINAL to indicate the original resource height.
The transformed resource.


protected abstract Bitmap transform(BitmapPool pool,
                                    Bitmap toTransform,
                                    int outWidth,
                                    int outHeight)
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.

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 heightdoes not need to match exactly).