小编Sin*_*kup的帖子

使用像素数据创建CVPixelBuffer,但最终图像失真

我通过OpenGLES方法(glReadPixels)或其他方式获取像素,然后创建CVPixelBuffer(带或不带CGImage)进行视频录制,但最终图片失真.当我在iPhone 5c,5s和6上测试时,会在iPhone6上发生这种情况.

看起来像:

在此输入图像描述

这是代码:

CGSize viewSize=self.glView.bounds.size;
NSInteger myDataLength = viewSize.width * viewSize.height * 4;

// allocate array and read pixels into it.
GLubyte *buffer = (GLubyte *) malloc(myDataLength);
glReadPixels(0, 0, viewSize.width, viewSize.height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);

// gl renders "upside down" so swap top to bottom into new array.
// there's gotta be a better way, but this works.
GLubyte *buffer2 = (GLubyte *) malloc(myDataLength);
for(int y = 0; y < viewSize.height; y++)
{
    for(int x = 0; x < viewSize.width* …
Run Code Online (Sandbox Code Playgroud)

image opengl-es avfoundation ios cvpixelbuffer

5
推荐指数
1
解决办法
1497
查看次数

标签 统计

avfoundation ×1

cvpixelbuffer ×1

image ×1

ios ×1

opengl-es ×1