iPhone - изображение, созданное с помощью CGBitmapContextCreate как текстура Opengl - PullRequest
2 голосов
/ 30 марта 2012

Я хочу вызвать 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 для дальнейшей обработки изображения.

...