Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
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]) {

 

...

 {


            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;


}

 

}