package com.pandaq.pandaeye.utils;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.widget.ImageView;
import com.pandaq.pandaqlib.imagerblur.FastBlur;
/**
* Created by PandaQ on 2016/9/7.
* email : 767807368@qq.com
* 模糊处理图像的工具类
*/
public class BlurImageUtils {
/**
* @param imageView 待处理的imageView
* @param scaleFactor 模糊处理之前的进行采样缩小被处理图片大小的系数
* @param blurf 模糊系数
* @return 处理后的模糊图像
*/
public static Bitmap blur(ImageView imageView, float scaleFactor, int blurf) {
Bitmap bitmap = ((BitmapDrawable) imageView.getDrawable()).getBitmap();
int width = bitmap.getWidth();
int height = bitmap.getHeight();
//创建一个长宽等比缩小的Bitmap
Bitmap overlay = Bitmap.createBitmap((int) (width / scaleFactor), (int) (height / scaleFactor), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(overlay);
//将canvas按照bitmap等量缩放,模糊处理的图片才能显示正常
canvas.scale(1 / scaleFactor, 1 / scaleFactor);
Paint paint = new Paint(Paint.FILTER_BITMAP_FLAG);
canvas.drawBitmap(bitmap, 0, 0, paint);
//对采样后的bitmap进行模糊处理,缩放采样后的图片处理比原图处理要省很多时间和内存开销
overlay = FastBlur.doBlur(overlay, blurf, false);
return overlay;
}
}