OpenGLES2.0后台绘制图片
之前公司项目中,做了一个使用实时图像显示并且添加矩形文字等内容的功能,并且要求有类似拍照的功能,就是在某一时刻接下来当时的图像,当然还包括绘制上去的文字,矩形等;所以就选择了GLSurfaceView配合Renderer进行显示,显示效果不过,图像截取也OK了,之后又要求需要后台也可以截图保存,这样就蛋疼了,GLSURfaceView进入后台后是不会调用绘制的,而我的截图是从它绘制的缓存中取像素值然后保存的,所以就只得到一张黑色的图片,之后就在网上看了下其他同行的代码,最让我受益的是http://blog.csdn.net/junzia/article/details/56008902里面利用EGL进行绘制的东西,不过他的写法是将所有的事情全部都自己做,重新构造了整个绘制流程,这样做的话我就要完全抛弃GLSurafceView和Renderer这一套然后重新写很多东西了.后来我就像所有的绘制东西其实都在Renderer中,由GLSURfaceView根据情况进行调用然后显示,那么能不能我只构造一个单独的Surface,然后手动调用Renderer进行绘制呢?
经过我的修改以后所有的Renderer全都不需要变动,只需要使用他的EGLHelper 构建出绘制的Surface
然后修改GLES20BackEnv 中的setFilter,在里面传入你的renderer,然后调用
renderer.onSurfaceCreated(mEGLHelper.mGL, mEGLHelper.mEglConfig); renderer.onSurfaceChanged(mEGLHelper.mGL, mWidth, mHeight);
然后在getBitmap里面调用
renderer.onDrawFrame(mEGLHelper.mGL);
其它的不变,就可以完美进行后台图片绘制保存了
OpenGLES2.0后台绘制图片相关推荐
- OpenGLES2.0渲图步骤:绘几何图形、图片处理、离屏渲染(3)
OpenGLES2.0是一个图形渲染(图形处理)库. OpenGL ES 2.0渲染过程为:读取顶点数据--执行顶点着色器--组装图元--光栅化图元--执行片元着色器--写入帧缓冲区--显示到屏幕上. ...
- Android OpenGLES2.0(五)——绘制立方体
上篇博客中我们提到了OpenGLES中绘制的两种方法,顶点法和索引法.之前我们所使用的都是顶点法,这次绘制立方体使用索引法来绘制立方体. 构建立方体 上篇博客讲到正方形的绘制,立方体是是由六个正方形组 ...
- OpenglES2.0 for Android:来做个地球吧
OpenglES2.0 for Android:来做个地球吧 前言 上两节中我们说了纹理映射,也利用纹理给我们的平面图形以及立方体穿上了漂亮的衣服,在继续学习其他知识之前,让我们先来用纹理映射以及我们 ...
- Android OpenGLES2.0(十七)——球形天空盒VR效果实现
在3D游戏中通常都会用到天空盒,在3D引擎中也一般会存在天空盒组件,让开发者可以直接使用.那么天空盒是什么?天空盒又是如何实现的呢?本篇博客主要介绍如何在Android中利用OpenGLES绘制一个天 ...
- vue如何实现在页面上画画_Vue使用Canvas绘制图片、矩形、线条、文字,下载图片...
1 前言 1.1 业务场景 图片储存在后台中,根据图片的地址,在vue页面中,查看图片,并根据坐标标注指定区域. 由于浏览器的机制,使用window.location.href下载图片时,并不会保存到 ...
- 音视频开发系列(26)三种方式绘制图片-android开发
在android开发中我们最常使用的绘制图片的方式就是ImageView,设置src.那么有没有其他方案可以实现图片的绘制呐? 三种方案 通过Imageview设置setImageBitmap fin ...
- ASP.NET2.0打通文件图片处理任督二脉【月儿原创】
ASP.NET2.0打通文件图片处理任督二脉 作者:清清月儿 主页:http://blog.csdn.net/21aspnet/ 时间:2007.4.1 1.最简单的单文件上传(没 ...
- iOS绘制图片与文字
2019独角兽企业重金招聘Python工程师标准>>> #####绘制图片与文字 #####1.绘制图片,直接代码说明 加载图片 #pragma mark - 小黄人 -(void) ...
- OpenglES2.0 Android:画矩形
OpenglES2.0 for Android:来画个矩形吧 原文链接:https://blog.csdn.net/cassiePython/article/details/51553842 OK,开 ...
最新文章
- python配置文件密码管理_python – 可以在django管理员中实现“下次登录时更改密码”类型功能吗?...
- 【线上分享】华为云RTC服务架构及应用实践
- c语言memcopy_C语言中memcpy 函数的用法详解
- Java 进程间文件锁FileLock详解
- axios post object object_Vue前端开发——数据交互axios
- python字典统计字母出现次数_第三篇 python运用字典统计字符串中字母出现的次数...
- Android11 如何将系统默认设置中文
- 全国大学生恩智浦杯智能汽车竞赛
- centos7 配置阿里yum源
- oracle中锁机制,Oracle锁的基本机制
- php pcntl_alarm,pcntl_alarm定时闹钟信号详解
- IBM“移动优先”官网正式上线:苹果静候佳音
- 转载:如何使用RFT自动打开IE
- 我不是教你诈 内容摘要
- jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败
- a标签href的几种写法
- Introduction to CMake by Example
- IOS App的简单开发实例
- 编译器整数除法的优化
- Java实现对文件的增删改查操作
热门文章
- Python版经典小游戏愤怒的小鸟源代码,基于pygame+pymunk
- 计蒜客信息学3月普及组模拟赛
- JS输出26个英文大小写字母
- 如何将二维码巧妙放进海报里?
- Document-Level Relation Extraction with Adaptive Thresholding and Localized Context Pooling
- 【RGB=HSI】单片机控制RGB单灯与HSI互转算法
- css图片按键变手指,CSS-悬停button标签时如何使光标变为手形
- asc码即ascii,没有asc这一说,ascii后是ii而不是罗马数字
- 【平衡车】电机编码器知识总结
- 努比亚 Z5 mini刷机包 omni4.4.2改动V4.0 自用版 精简 MIUI特效