您的位置:首页 > 产品设计 > UI/UE

使用GPUImage做美颜导致远端图像颠倒的问题详解

2017-12-12 16:05 645 查看

使用自采集的方式整合第三方美颜

那个横屏的问题,结论如下:

变换矩阵不能写死为:vf.transform = new float[]

{ 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f }

;

需要从GPUImage绘制层将变换矩阵传出来,然后赋值给vf.transform。用户代码修改如下:

GPUImageRenderer.java:

public interface OnFrameAvailableListener
{ void onFrameAvailable(int textureID, int rotation, byte[] data, float[] transform); }
mSurfaceTexture.getTransformMatrix(videoTextureTransform);
if (null != onFrameAvailableListener)
{ onFrameAvailableListener.onFrameAvailable(mGLTextureId, getRotation().asInt(), data, videoTextureTransform); }


VideoChatViewActivity.java:

vf.transform = transform;


以上可解决远端接收到的数据是横屏的问题

使用商汤的美颜导致颠倒

商汤的矩阵是不停的变化的,所以写固定的转换数组没用。



在调用的地方,加上这行代码即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐