在以前的开发中遇到过要求图片实现高斯模糊的效果,今天整理一下,发出来,供参考
注意:
对图片的各种处理大多数是通过bitmap进行操作的,本例也不例外,另外本例是使用imageloader加载的网络图片,以给大家一个模糊网络图片的参考,当然,加载网络图片必然是异步的,所以首次进入界面加载图片时会有一个等待时间,如果想要完美用户体验的话,就需要大家开动脑筋了!
下面是关于高斯模糊的工具类:BitmapVagueTask
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
public class BitmapBlurUtil {
private static ExecutorService executor;
private static int POOL_SIZE = 2;// 单个CPU线程池大小
private static ExecutorService getExecutor() {
if (executor == null) {
int cpuNums = Runtime.getRuntime().availableProcessors();
executor = Executors.newFixedThreadPool(cpuNums * POOL_SIZE);
}
return executor;
}
public static void addTask(Bitmap bitmap, Handler handler) {
getExecutor().submit(new BitmapVagueTask(bitmap, handler));
}
/** 水平方向模糊度 */
private static float hRadius = 3;
/** 竖直方向模糊度 */
private static float vRadius = 3;
/** 模糊迭代度 */
private static int iterations = 5;
/**
* 异步
* @author baiyuliang
*/
private static class BitmapVagu