Android Bitmap Crop resizeDownAndCropCenter(Bitmap bitmap, int size, boolean recycle)

Here you can find the source of resizeDownAndCropCenter(Bitmap bitmap, int size, boolean recycle)

Description

resize Down And Crop Center

Declaration

public static Bitmap resizeDownAndCropCenter(Bitmap bitmap, int size,
            boolean recycle) 

Method Source Code

//package com.java2s;

import android.graphics.Bitmap;

import android.graphics.Canvas;

import android.graphics.Paint;

public class Main {
    public static Bitmap resizeDownAndCropCenter(Bitmap bitmap, int size,
            boolean recycle) {
        int w = bitmap.getWidth();
        int h = bitmap.getHeight();
        int minSide = Math.min(w, h);
        if (w == h && minSide <= size)
            return Bitmap.createBitmap(bitmap);
        size = Math.min(size, minSide);

        float scale = Math.max((float) size / bitmap.getWidth(),
                (float) size / bitmap.getHeight());
        Bitmap target = Bitmap.createBitmap(size, size, getConfig(bitmap));
        int width = Math.round(scale * bitmap.getWidth());
        int height = Math.round(scale * bitmap.getHeight());
        Canvas canvas = new Canvas(target);
        canvas.scale(scale, scale); // TODO: seems scale is a wrong value
        canvas.translate((size - width) / 2f, (size - height) / 2f);
        Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG
                | Paint.DITHER_FLAG);
        canvas.drawBitmap(bitmap, 0, 0, paint);
        if (recycle)
            bitmap.recycle();//  w ww  .  jav a  2  s.  c o  m
        return target;
    }

    private static Bitmap.Config getConfig(Bitmap bitmap) {
        Bitmap.Config config = bitmap.getConfig();
        if (config == null) {
            config = Bitmap.Config.ARGB_8888;
        }
        return config;
    }
}

Related

  1. cutImg(File file, int newWidth, int newHeight)
  2. cutStretchImage(Bitmap image, int xsize, int ysize)
  3. cutImg(Bitmap bitmap, int newWidth, int newHeight)
  4. cropCenter(Bitmap bitmap, boolean recycle)
  5. cropCenterBitmap(Bitmap bitmap, int newWidth, int newHeight)
  6. resizeDownIfTooBig(Bitmap bitmap, int targetSize, boolean recycle)
  7. resizeDownToPixels(Bitmap bitmap, int targetPixels, boolean recycle)
  8. cropImage(Context context, Uri imageuri, Uri tempUri)
  9. getCroppedBitmap(Bitmap bitmap)