public void setimageReadersurface(){
//预览帧帧获取
imageReader = ImageReader.newInstance(1000, 1000, ImageFormat.JPEG,2);
imageReader.setOnImageAvailableListener(new ImageReader.OnImageAvailableListener() {
@Override
public void onImageAvailable(ImageReader reader) {
//B2.1 接收图片:从ImageReader中读取最近的一张,转成Bitmap
Image image= reader.acquireLatestImage();//获取预览帧数据,最后一帧
ByteBuffer buffer= image.getPlanes()[0].getBuffer();
int length= buffer.remaining();
byte[] bytes= new byte[length];
buffer.get(bytes);
image.close();
//System.out.println(".........................!!bitmap的值:"+bitmap);
bitmap = BitmapFactory.decodeByteArray(bytes,0,length);
System.out.println("...........................bitmap的值:"+bitmap);//最后一帧的bitmap
//保存图片到图库
//Str_Time = get_time();
//MediaStore.Images.Media.insertImage(getContentResolver(), bitmap,"takephoto"+ Str_Time , "");
//通知图库更新该图片
//sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File("/sdcard/Boohee/image.jpg"))));
// 创建Intent,用于打开手机本地图库选择图片
//Intent intent = new Intent(Intent.ACTION_PICK,
//MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// 启动intent打开本地图库
//startActivityForResult(intent,getok);
}
},null);
// 配置:获取ImageReader的Surface
imageReaderSurface = imageReader.getSurface();
}
我想把bitmp拿出来隔一秒或者隔几帧做人脸检测处理