Camera2在预览的TextureView上画矩形
来源:互联网 发布:盼盼交友软件靠谱吗 编辑:程序博客网 时间:2024/05/19 14:19
Camera2在预览的TextureView上画矩形
盖天地不全,这经原是全全的,今沾破了, 乃是应不全之奥妙也,岂人力 所能与耶! 愿来者补充
使用手机摄像头进行人脸检测,对图像进行处理然后,画出矩形在预览的图像中。其他的也类似。
使用TextureView对Camera进行预览,然后想在上面画出矩形,使用了TextureView类的方法,但都不行。,其他人解释是:进行预览的时候,是使用了GPU进行渲染,在硬件层进行操作。。而TextureView类的方法都是在软件层进行改动,是没有办法进行修改的。
尝试一
使用跟SurfaceView一样的方法,处于底层并在上层进行画框。但是就第一步就不行,TextureView就没有办法处于底层。
尝试二
直接弄个透明的ImageView进行覆盖,然后再ImageView中画框,尝试了一下,好像还是不行,不过我觉得有救,哈哈。
最终版本:
既然SurfaceView可以处于顶层,那我就是用一个透明的Surfaceview处于顶层然后,在SurfaceView中画框。就可以了
xml文件如下:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".camera.CameraActivity"><FrameLayout android:id="@+id/frame_layout_rect" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextureView android:id="@+id/texture" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <SurfaceView android:id="@+id/surfaceview" android:layout_width="wrap_content" android:layout_height="wrap_content" /></FrameLayout></RelativeLayout>
这里是设置一下SurfaceView并获取到surfaceHolder便于后面画框
surfaceview.setZOrderOnTop(true);//处于顶层 surfaceview.getHolder().setFormat(PixelFormat.TRANSPARENT);//设置surface为透明 surfaceHolder=surfaceview.getHolder();
画框,,其中还有一个重要的,怎么清楚掉上一次的画框。
很简单,但是我也很麻烦
//定义画笔 Paint mpaint = new Paint(); mpaint.setColor(Color.BLUE); // mpaint.setAntiAlias(true);//去锯齿 mpaint.setStyle(Paint.Style.STROKE);//空心 // 设置paint的外框宽度 mpaint.setStrokeWidth(2f); Canvas canvas=new Canvas(); canvas = surfaceHolder.lockCanvas(); canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); //清楚掉上一次的画框。 Rect r = new Rect(0,0,100,100); canvas.drawRect(r, mpaint); surfaceHolder.unlockCanvasAndPost(canvas);
到这里就可以可以实现上述功能了,哈哈。
1 0
- Camera2在预览的TextureView上画矩形
- Camera2.0新API下获取预览图像数据 (获取TextureView中图像)
- Anroid TextureView、SurfaceView的Camera预览实现
- 自己写的照相机预览(TextureView)
- android TextureView destroyDrawingCache(关闭Camera时,清除预览画面上的卡的最后一帧画面)
- TextureView 实现Camera预览
- 在视图画矩形并处理鼠标在矩形上的操作
- Camera2预览“最小系统”
- 在地图上画矩形Ajax查询
- 在图像上画矩形 opencv
- GDI+ C# 在图片上画矩形
- Android 在地图上画矩形
- QT在Label上画矩形
- Android camera2预览界面流程
- Camera2 打开相机预览界面
- Android Camera2 拍照(二)——使用TextureView
- 在矩形纸上均匀画点的算法 - 用C++ Builder 6实现
- 利用Android Camera2 的照相机api 实现 实时的图像采集与预览
- Java中native关键字
- Docker集中化web界面管理平台shipyard
- 滚动数组
- 发送http的post请求
- C-串与string的区别(C++)
- Camera2在预览的TextureView上画矩形
- 【Spring源码--IOC容器的实现】(二)BeanDefinition的Resource定位
- Android 实现高斯模糊效果及低版本兼容
- github上star最多的53个深度学习项目
- 【C++】string转为TCHAR
- Linux下压缩与解压命令tar
- jquery validation 的正确打开方式
- cp mount分区文件
- Insight mvc:interceptor 解析、执行顺序