此问题是对Taking Screenshots from iOS app - emulating Display recorder (query on the internals)的延伸
我有两种方法从背景中截取屏幕截图 -
1. Creating an image out of the ios surface and saving it - 它以非常快的速度捕获(大约0.2-0.3秒/ 12-15个屏幕截图),但是遇到了一些问题,在此讨论:Releasing an IOSurface
2.以下代码使用createScreenIOSurface API执行相同的工作:
IOSurfaceRef surface = [UIWindow createScreenIOSurface];
UIImage *surfaceImage = [[UIImage alloc] _initWithIOSurface:surface orientation:UIImageOrientationUp];
CFRelease(surface);
UIImageSaveToPhotosAlbum(surfaceImage, self, nil, nil);
然而,捕获率非常糟糕,约为0.5-0.7秒/截图。
那么,方法1中遇到的问题是否有解决方案?
有没有办法提高方法2的性能?