Home
Ejin66
Cancel

使用Camera preview data 绘制视频

1. 总体流程 get preview data(YUV) -> convert to RGB data -> GLSurfaceView render RGB 1.1 获取YUV预览数据 YUV预览数据又可细分为 YUV_420_NV21 、YUV_420_I420、YUV_420_NV12、YUV_420_YV12 等。这里,使用 NV21 以及 Camera ...

GLSurfaceView实现相机预览以及相机功能的扩展

要实现相机预览的功能,一般是用SurfaceView、TextureView。默认就是支持相机预览的,只需要将surfaceTexture 设置给Camera2 API,无需其他额外操作。但是对于GLSurfaceView 就不一样,它是没有surfaceTexture的,借助纹理可实现相机的预览。 1. 首先,使用Camera2 API来预览相机。(具体细节见下方源码) 在预...

OpenGL关于纹理的使用

1. 纹理的简单理解 纹理,字面上理解就是物体面上的花纹或者线条。在OpenGL中,用绘制图元的方式绘制复杂的图片却是很难,这时便可以采用纹理的方式绘制一张已有的图片。简单的理解就是,纹理就是绘制图片。 2. 如何绘制纹理 创建纹理: private fun createTexture(): Int { val texture = IntA...

OpenGL中的移动、缩放、旋转

OpenGL中关于 移动、缩放、旋转 等的操作,本质上都是矩阵变换的结果。在OpenGL中,已经内置了相应的API,使得我们不用去关心它的实现细节。矩阵变换相关的接口在android.opengl.matrix中,暂时使用到的有: Matrix.rotateM(m, offset, a, x, y, z) 旋转 m 表示原矩阵 off...

OpenGL基础整理

1. GLSurfaceView 基础知识 GLSurfaceView 继承自 SurfaceView,并在其基础上增加了 OpenGL 环境,使我们能够快速的开发 OpenGL。 a. 关于GLSurfaceView的几个重要概念: 需要实现 GLSurfaceView.Render 接口,并通过方法 setRender() 设置到 GLSurfaceView 在设置完 R...

Hack移动魔盒,安装第三方应用

最近安装了移动电视魔盒,可电视节目很无聊,想着安装个直播软件应用。 可不得不说移动还是很坏的,内置的应用市场里面该有的应用一概没有。我轻视的一笑,这能难道我?找了个U盘,把应用copy进去,再插到盒子上,点开apk安装,动作一气呵成。正当我准备帅气回头的时候,屏幕上跳出一个弹框:不支持第三方应用安装,,,what the f***???移动真是太坏了,内置应用少不说,还不让别人安装应用。。...

Concurrent包中相关类的整理

阻塞队列 BlockingQueue BlockingQueue 是一个队列接口类,定义了一系列的方法,主要是针对 producer-comsumer 的场景,解决不同线程下的同步存取问题。 BlockingQueue 方法详解 BlockingQueue 有以下几套存取方法: 若操作无法成功时,会抛出异常的 add(e) ...

将Go代码编译成动态链接库,android通过JNI调用

很明显,要实现在Android上运行Go的代码,需要分两步走: 将Go代码编译成动态链接库,也就是.so库 android 通过NDK调用so库,生成新的so库,通过JNI调用 1. Go代码编译成动态链接库 将Go代码编译成动态链接库,可以通过下面的命令: go build -buildmode=c-shared -o libxx.so xxx.go 其中,-b...

Linux中防火墙 [iptables, firewall, ufw] 的基本用法

CentOS 在 CentOS 中有两类防火墙: iptabls , firewall。 CentOS 7 以前的版本默认是 iptabls, 之后的版本默认都是 firewall。下面会分别介绍下两种防火墙的基本用法。 iptables 的基本用法 安装 iptables: yum install iptabls-services 开启/关闭/重启 iptabls: sy...

图片字符化实践

效果图 首先,看下原图: 处理之后的效果图: 实现原理 原理其实很简单:获取每一个像素点,进行灰度处理;再根据灰度值,匹配对应的ascii字符 , 最后保存到图片。 实践 实际处理过程中,会遇到几个问题: 如何进行灰度处理: 根据百度搜索的结果,灰度计算有以下几个方法,选取其中一种就可以: 浮点算法:Gray=R...