美文网首页
iOS OpenGL Texture 转为 UIImage 的方

iOS OpenGL Texture 转为 UIImage 的方

作者: 刘乔泓 | 来源:发表于2021-01-03 19:30 被阅读0次

    iOS OpenGL Texture 转为 UIImage 的方法

    调用该方法前,需要先绑定纹理并且设置为激活状态!

    - (UIImage *)imageFromTextureWithwidth:(int)width height:(int)height {
        // glActiveTexture(GL_TEXTURE1); 先绑定某个纹理
        int size = width * height * 4;
        GLubyte *buffer = malloc(size);
        glReadPixels(0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
        CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, buffer, size, NULL);
        int bitsPerComponent = 8;
        int bitsPerPixel = 32;
        int bytesPerRow = 4 * width;
        CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();
        CGBitmapInfo bitmapInfo = kCGBitmapByteOrderDefault;
        CGColorRenderingIntent renderingIntent = kCGRenderingIntentDefault;
        CGImageRef imageRef = CGImageCreate(width, height, bitsPerComponent, bitsPerPixel, bytesPerRow, colorSpaceRef, bitmapInfo, provider, NULL, NO, renderingIntent);
        UIImage *image = [UIImage imageWithCGImage:imageRef];
        free(buffer);
        return image;
    }
    
    

    相关文章

      网友评论

          本文标题:iOS OpenGL Texture 转为 UIImage 的方

          本文链接:https://www.haomeiwen.com/subject/bdlpoktx.html