CGBitmapContextCreate
texture->data を呼び出してCGContextRef
を作成し、CGImageRef
by 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
しかし、テクスチャの「スクリーンショット」を撮り、それをさらなる画像処理として保存したいと思います。