我需要拍摄当前ipad视图的快照。该视图加载并播放视频。 我发现这个功能几乎可以很好地工作。
- (UIImage*)captureView:(UIView *)view {
CGRect rect = [[UIScreen mainScreen] bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
(来自:LINK)
问题是,播放视频的当前帧未被捕获,仅捕获视频但没有视频内容。在保存图像之前,我是否忘记更新显示屏或其他任何内容?是否有一个特殊的函数可以读取最新的屏幕值?
感谢您的时间和帮助。
答案 0 :(得分:0)
您是否尝试过使用 UIGetScreenImage ()函数?
它是私有的,但Apple允许使用它,因此即使您使用它,您的应用也会在App Store中得到验证。
你只需要声明它的原型,所以编译器不会抱怨:
CGImageRef UIGetScreenImage( void );
注意:您可以使用以下NSImage方法从CGImageRef创建NSImage:
- ( id )initWithCGImage: ( CGImageRef )cgImage size:( NSSize )size;