iOS 截取当前屏幕

来源:互联网 发布:狂雷flv视频下载软件 编辑:程序博客网 时间:2024/05/29 23:46
截取当前屏幕内容 将以下代码粘贴复制 直接调用imageWithScreenshot方法/** *  截取当前屏幕 * *  @return NSData * */- (NSData *)dataWithScreenshotInPNGFormat{    CGSize imageSize = CGSizeZero;    UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;    if (UIInterfaceOrientationIsPortrait(orientation))        imageSize = [UIScreen mainScreen].bounds.size;    else        imageSize = CGSizeMake([UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width);        UIGraphicsBeginImageContextWithOptions(imageSize, NO, 0);    CGContextRef context = UIGraphicsGetCurrentContext();    for (UIWindow *window in [[UIApplication sharedApplication] windows])    {        CGContextSaveGState(context);        CGContextTranslateCTM(context, window.center.x, window.center.y);        CGContextConcatCTM(context, window.transform);        CGContextTranslateCTM(context, -window.bounds.size.width * window.layer.anchorPoint.x, -window.bounds.size.height * window.layer.anchorPoint.y);        if (orientation == UIInterfaceOrientationLandscapeLeft)        {            CGContextRotateCTM(context, M_PI_2);            CGContextTranslateCTM(context, 0, -imageSize.width);        }        else if (orientation == UIInterfaceOrientationLandscapeRight)        {            CGContextRotateCTM(context, -M_PI_2);            CGContextTranslateCTM(context, -imageSize.height, 0);        } else if (orientation == UIInterfaceOrientationPortraitUpsideDown) {            CGContextRotateCTM(context, M_PI);            CGContextTranslateCTM(context, -imageSize.width, -imageSize.height);        }        if ([window respondsToSelector:@selector(drawViewHierarchyInRect:afterScreenUpdates:)])        {            [window drawViewHierarchyInRect:window.bounds afterScreenUpdates:YES];        }        else        {            [window.layer renderInContext:context];        }        CGContextRestoreGState(context);    }        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();    UIGraphicsEndImageContext();        return UIImagePNGRepresentation(image);}/** *  返回截取到的图片 * *  @return UIImage * */- (UIImage *)imageWithScreenshot{    NSData *imageData = [self dataWithScreenshotInPNGFormat];    return [UIImage imageWithData:imageData];}

0 0
原创粉丝点击