iOS屏幕截屏

2019-04-02  本文已影响0人  开心的小娇

+ (UIImage*)screenShot {

    CGSizeimageSize =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);

        }

        [window.layerrenderInContext:context];

        CGContextRestoreGState(context);

    }

    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    returnimage;

}

上一篇下一篇

猜你喜欢

热点阅读