如何使用CCLayer截取设备相机的屏幕截图

时间:2012-09-12 14:04:42

标签: iphone cocos2d-iphone uiimagepickercontroller augmented-reality cclayer

我已经设置了一个摄像头,我设法在相机上方添加了Cocos2d图层,现在我想拍摄整个视图的截图,即相机和相机上方图层上的图像。

由于我的CCLayer透明,因此可以看到相机。

有关如何执行此操作的任何想法/链接/详细信息..?

提前感谢您的时间:)

编辑:这是我的屏幕代码

UIGraphicsBeginImageContext([CCDirector sharedDirector].openGLView.superview.frame.size);
    [[CCDirector sharedDirector].openGLView.superview.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage * image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndPDFContext();

    CGRect rect;
    rect = CGRectMake(0, 0, 480, 320);
    CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage],[CCDirector sharedDirector].openGLView.superview.frame);
    UIImage * img =[UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    UIImageWriteToSavedPhotosAlbum(img, nil, nil, nil);

2 个答案:

答案 0 :(得分:1)

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

//它会给你uiimage

答案 1 :(得分:0)

对所有寻找同样事物的人......!我已经使用AVFoundation框架工作了。 This is one nice tutorial on how to achieve this :)