2021-10-09

OpengGL实时相机视频帧旋转

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

原始图像

image.png

生成的纹理

image.png

如果要将摄像头采集的横屏图片竖屏显示,需要将纹理先沿x轴翻转,然后向右旋转90°,就得到竖屏的图片了。

设置顶点坐标

GLfloat vertex[] = {
        -1.0, -1.0,
        1.0, -1.0,
        -1.0, 1.0,
        1.0, 1.0
 };

纹理坐标变换过程

image.png
static const GLfloat textureRightRotate90[] = {
        1.0f, 1.0f,
        1.0f, 0.0f,
        0.0f, 1.0f,
        0.0f, 0.0f
    };

你可能感兴趣的:(2021-10-09)