/**
* 转换数据并进行模糊处理
*/
public Bitmap blur(byte[] data, Camera camera,float blurvaule){
Camera.Size previewSize = camera.getParameters().getPreviewSize();
if (yuvType == null)
{
yuvType = new Type.Builder(rs, Element.U8(rs)).setX(data.length);
in = Allocation.createTyped(rs, yuvType.create(), Allocation.USAGE_SCRIPT);
rgbaType = new Type.Builder(rs, Element.RGBA_8888(rs)).setX(previewSize.width).setY(previewSize.height);
out = Allocation.createTyped(rs, rgbaType.create(), Allocation.USAGE_SCRIPT);
}
in.copyFrom(data);
yuvToRgbIntrinsic.setInput(in);
yuvToRgbIntrinsic.forEach(out);
Bitmap bmpout = Bitmap.createBitmap(previewSize.width, previewSize.height, Bitmap.Config.ARGB_8888);
out.copyTo(bmpout);
//return adjustPhotoRotation(blurBitmap(bmpout,blurvaule),90);
return blurBitmap(bmpout,blurvaule);
}
/**
* 模糊处理Bitmap
* @param bitmap
* @return
*/
private Bitmap blurBitmap(Bitmap bitmap,float vaule) {
// 用需要创建高斯模糊bitmap创建一个空的bitmap
Bitmap outBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
// 初始化Renderscript,这个类提供了RenderScript context,
// 在创建其他RS类之前必须要先创建这个类,他控制RenderScript的初始化,资源管理,释放
// 创建高斯模糊对象
// 创建Allocations,此类是将数据传递给RenderScript内核的主要方法,
// 并制定一个后备类型存储给定类型
Allocation allIn = Allocation.createFromBitmap(rs, bitmap);
Allocation allOut = Allocation.createFromBitmap(rs, outBitmap);
// 设定模糊度
blurScript.setRadius(vaule);
// Perform the Renderscript
blurScript.setInput(allIn);
blurScript.forEach(allOut);
// Copy the final bitmap created by the out Allocation to the outBitmap
allOut.copyTo(outBitmap);
// recycle the original bitmap
bitmap.recycle();
// After finishing everything, we destroy the Renderscript.
rs.destroy();
return outBitmap;
}
defaultConfig {
.......
renderscriptTargetApi 21
renderscriptSupportModeEnabled true
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有