2

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

4

0 に答える 0