ios编程:iPhone How-to:给UIView拍照

基本原理就是主要将UIView的layer描绘到图形上下文。UIView全局拍照和局域拍照的代码如下:

1 UIView全局拍照

- (UIImage *) screenImage:(UIView *)view {

    UIImage *screenImage;

    UIGraphicsBeginImageContext(view.frame.size);

    [view.layer renderInContext:UIGraphicsGetCurrentContext()];

    screenImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return screenImage;

}

2 UIView局域拍照

- (UIImage *) screenImage:(UIView *)view rect:(CGRect)rect {

    CGPoint pt = rect.origin;

    UIImage *screenImage;

    UIGraphicsBeginImageContext(rect.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextConcatCTM(context,

    CGAffineTransformMakeTranslation(-(int)pt.x, -(int)pt.y));

    [view.layer renderInContext:context];

    screenImage = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    return screenImage;

}


你可能感兴趣的:(iPhone)