/
UIGetScreenImage

UIGetScreenImage

CGImageRef UIGetScreenImage();


- (UIImage *) getScreenImage:(UIView *)shotView{


    CGImageRef cgImage = UIGetScreenImage();


    void *imageBytes = NULL;


    if (cgImage == NULL) {


        CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB();


        imageBytes = malloc(shotView.bounds.size.width * shotView.bounds.size.height * 4);


       
 CGContextRef context = CGBitmapContextCreate(imageBytes, 
shotView.bounds.size.width, shotView.bounds.size.height, 8, 
shotView.bounds.size.width * 4, colorspace, kCGImageAlphaNoneSkipFirst |
 kCGBitmapByteOrder32Big);


        CGColorSpaceRelease(colorspace);


        for (UIWindow *window in [[UIApplication sharedApplication] windows]) {


            CGRect bounds = [window bounds];


            CALayer *layer = [window layer];


            CGContextSaveGState(context);


            if ([layer contentsAreFlipped]) {


                CGContextTranslateCTM(context, 0.0f, bounds.size.height);


                CGContextScaleCTM(context, 1.0f, -1.0f);


            }


            [layer renderInContext:(CGContextRef)context];


            CGContextRestoreGState(context);


        }


        cgImage = CGBitmapContextCreateImage(context);


        CGContextRelease(context);


    }


    UIImage *resultingImage = [UIImage imageWithCGImage:cgImage];


    CGImageRelease(cgImage);


    return resultingImage;


}

 

 

Related content

UIColor to UIImage
UIColor to UIImage
More like this
Image Dimension
Image Dimension
More like this
UIImage圆角
UIImage圆角
More like this
UIEdgeInsets
UIEdgeInsets
More like this
谈谈iOS Animation
谈谈iOS Animation
More like this
iOS AutoLayout - get frame size width
iOS AutoLayout - get frame size width
More like this