iPhone - 使用CGBitmapContextCreate创建的图像作为Opengl纹理

时间:2012-03-30 01:33:54

标签: iphone opengl-es textures cgbitmapcontext

我想使用texture->数据调用CGBitmapContextCreate来创建CGContextRef, 并按CGImageRef(上下文)创建CGBitmapContextCreateImage

但是,创建的图像不符合预期:(

CGBitmapContextCreateImage创建的那个:

enter image description here

实际的(自从我用另一台相机拍摄后略有不同):

enter image description here

代码:(texture.bytesPerPixel = 2

    CGContextRef context = CGBitmapContextCreate(texture.data, 512, 512, 5, 512 * texture.bytesPerPixel, CGColorSpaceCreateDeviceRGB(), kCGImageAlphaNoneSkipFirst);
    CGImageRef cg_img = CGBitmapContextCreateImage(context);
    UIImage* ui_img = [UIImage imageWithCGImage: cg_img];
    UIImageWriteToSavedPhotosAlbum(ui_img, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);

完整代码:

http://ihome.ust.hk/~tm_lksac/OpenGLSprite.m

应用程序通常需要调用- (void)drawSelfIfNeeded:(BOOL) 更新应用程序中的纹理。但是我想对纹理进行“屏幕截图”并将其保存为UIImage作为进一步的图像处理。

0 个答案:

没有答案