捕捉屏幕,因为它看起来像

时间:2013-01-09 11:49:27

标签: iphone

我正在做一个应用程序。在那里我使用一个带有图像的imageview并添加一个带有清晰孔的视图。通过这些孔我们可以看到背景图像。所以我的问题是我想捕获整个屏幕(imageview with这个洞视图).Iam使用下面的代码,但它不起作用。

- (UIImage*)captureView:(UIView *)yourView {
CGRect rect = [[UIScreen mainScreen] bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[yourView.layer renderInContext:context];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
 }

但它不起作用。

2 个答案:

答案 0 :(得分:0)

试试看你的screeShoT

-(UIImage*)getScreenShot
{
    CGSize screenSize = [[UIScreen mainScreen] applicationFrame].size;

    //CGSize screenSize = CGSizeMake(1024, 768);
    CGColorSpaceRef colorSpaceRef = CGColorSpaceCreateDeviceRGB();

    CGContextRef ctx = CGBitmapContextCreate(nil, screenSize.width, 416, 8, 4*(int)screenSize.width, colorSpaceRef, kCGImageAlphaPremultipliedLast);
    CGContextTranslateCTM(ctx, 0.0, screenSize.height);
    CGContextScaleCTM(ctx, 1.0, -1.0);

    [(CALayer*)self.yourView.layer renderInContext:ctx];

    CGImageRef cgImage = CGBitmapContextCreateImage(ctx);
    UIImage *image = [UIImage imageWithCGImage:cgImage];
    CGImageRelease(cgImage);
    CGContextRelease(ctx);

    return image;

}

答案 1 :(得分:0)

这就是我们的工作方式:

UIGraphicsBeginImageContextWithOptions(yourView.bounds.size, yourView.opaque, 0.0);
[yourView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *LastImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();