OpengGL实时相机视频帧旋转
iOS的坐标系统是左上角为原点,摄像头采集的视频帧(图片)的原点也在左上角,而纹理坐标的左下角为原点,所以正常的纹理坐标加载的图片是上下颠倒的
原始图像

生成的纹理

如果要将摄像头采集的横屏图片竖屏显示,需要将纹理先沿x轴翻转,然后向右旋转90°,就得到竖屏的图片了。
设置顶点坐标
GLfloat vertex[] = {
-1.0, -1.0,
1.0, -1.0,
-1.0, 1.0,
1.0, 1.0
};
纹理坐标变换过程

static const GLfloat textureRightRotate90[] = {
1.0f, 1.0f,
1.0f, 0.0f,
0.0f, 1.0f,
0.0f, 0.0f
};
网友评论