是否可以从Canvas或Surface获取GLES纹理?

时间:2017-01-19 15:27:27

标签: android opengl-es textures surfaceview

我尝试使用此类方法中的<cfloop from="1" to="#oldData.recordCount#" index="r"> Question #oldData.old_id[r]# = #oldData.new_id[r]#? Answer: #oldData.old_id[r] eq oldData.new_id[r]#<br> </cfloop>

Canvas

我需要在相机预览上显示图像或文字。我选择的方法是从 Canvas mCanvas = mSurface.lockCanvas(null); mSurface.unlockCanvasAndPost(mCanvas); 创建包含视图的纹理。我将结合这种纹理和视频帧的纹理。这是对的吗?

1 个答案:

答案 0 :(得分:1)

这比在OpenGL中制作纹理要困难得多。

  Bitmap  bitmap = Bitmap.createBitmap(this.getWidth(), this.getHeight(), Bitmap.Config.ARGB_8888);
  Canvas canvas = new Canvas(bitmap);
  this.draw(canvas); 
  File file = new File(Environment.getExternalStorageDirectory() + "/texture.png");
  bitmap.compress(Bitmap.CompressFormat.PNG, 100, new FileOutputStream(file));

从技术上讲,Bitmap文件或每个相机框架不是纹理。要使它们成为纹理,你应该调用gl函数,如gltex ****(,,, 位图);