我想使用texture->数据调用CGBitmapContextCreate
来创建CGContextRef
,
并按CGImageRef
(上下文)创建CGBitmapContextCreateImage
。
但是,创建的图像不符合预期:(
从CGBitmapContextCreateImage
创建的那个:
实际的(自从我用另一台相机拍摄后略有不同):
代码:(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
作为进一步的图像处理。