0

私は iPhone 用の拡張現実アプリに取り組んでおり、Vuforia SDK のサンプル コード「ImageTargets」を使用しています。独自の画像をテンプレートとして使用し、独自のモデルを使用してシーンを拡張しています (OpenGL ではいくつかの頂点のみ)。次にやりたいことは、ボタンを押した後にシーンをカメラロールに保存することです。ボタンと、ボタンが応答するメソッドを作成しました。ここがトリッキーな部分です。メソッドが呼び出されるボタンを押すと、画像は適切に保存されますが、画像は完全に白く、ボタン アイコンのみが表示されます (このhttp://tinypic.com/r/16c2kjq/5のように)。

- (void)saveImage {
  UIGraphicsBeginImageContext(self.view.layer.frame.size);
  [self.view.layer renderInContext: UIGraphicsGetCurrentContext()];
  UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  UIImageWriteToSavedPhotosAlbum(viewImage, self,
    @selector(image:didFinishSavingWithError:contextInfo:), nil);
}

- (void)image: (UIImage *)image didFinishSavingWithError:(NSError *)error 
  contextInfo: (void *) contextInfo {
   NSLog(@"Image Saved");
}

ImageTargetsParentViewController クラスにこれらの 2 つのメソッドがありますが、ARParentViewController からビューを保存しようとしました (さらにメソッドをクラスに移動しました)。誰かがこれに対する解決策を見つけましたか? どのビューを保存するか、および/または OpeglES を含むビューの保存にトリッキーな部分がないかどうかはよくわかりません。返信ありがとうございます。

4

1 に答える 1

0

写真を保存するためにこのコードを使用してみてください:

- (void)saveImage {

 UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *imagee = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

CGRect rect;
rect = CGRectMake(0, 0, 320, 480);
CGImageRef imageRef = CGImageCreateWithImageInRect([imagee CGImage], rect);
UIImage *img = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
UIImageWriteToSavedPhotosAlbum(img, Nil, Nil, Nil);
于 2013-10-31T15:21:13.623 に答える