获取屏幕图像的两种方法
一、
typedef struct __IOSurface *IOSurfaceRef;
UIKIT_EXTERN CGImageRef UICreateCGImageFromIOSurface(IOSurfaceRef);
- (void)takeScreenshotAndSaveToPhotosAlbum {
IOSurfaceRef ioSurfaceRef = (__bridge IOSurfaceRef)([UIWindow performSelector:@selector(createScreenIOSurface)]);
CGImageRef cgImageRef = UICreateCGImageFromIOSurface(ioSurfaceRef);
UIImage *uiImage = [UIImage imageWithCGImage:cgImageRef];
CFRelease(ioSurfaceRef);
CGImageRelease(cgImageRef);
UIImageWriteToSavedPhotosAlbum(uiImage, nil, nil, nil);
}
二、
- (void)takeScreenshotAndSaveToPhotosAlbum {
extern UIImage *_UICreateScreenUIImage();
UIImage *screenshot = _UICreateScreenUIImage();
UIImageWriteToSavedPhotosAlbum(screenshot, nil, nil, nil);
}
本文介绍了两种在iOS设备上获取屏幕截图的方法:一种是通过创建IOSurface并转换为CGImageRef来实现;另一种则是直接调用_UICreateScreenUIImage函数生成UIImage。
9800

被折叠的 条评论
为什么被折叠?



