package com.bumptech.glide.load.resource.bitmap; import android.content.Context; import android.graphics.Bitmap; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; /** * Scale the image so that either the width of the image matches the given width and the height of the image is * greater than the given height or vice versa, and then crop the larger dimension to match the given dimension. * * Does not maintain the image's aspect ratio */ public class CenterCrop extends BitmapTransformation { public CenterCrop(Context context) { super(context); } public CenterCrop(BitmapPool bitmapPool) { super(bitmapPool); } // Bitmap doesn't implement equals, so == and .equals are equivalent here. @SuppressWarnings("PMD.CompareObjectsWithEquals") @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { final Bitmap toReuse = pool.get(outWidth, outHeight, toTransform.getConfig()); Bitmap transformed = TransformationUtils.centerCrop(toReuse, toTransform, outWidth, outHeight); if (toReuse != null && toReuse != transformed && !pool.put(toReuse)) { toReuse.recycle(); } return transformed; } @Override public String getId() { return "CenterCrop.com.bumptech.glide.load.resource.bitmap"; } }