截取view中局部图片

-(void)screenShotRect:(CGRect)aRect //arect 想要截图的区域  
{  
    UIGraphicsBeginImageContextWithOptions(CGSizeMake(640, 960), YES, 0);  
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];  
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();  
    UIGraphicsEndImageContext();  
    CGImageRef imageRef = viewImage.CGImage;  
       
    CGRect rect =aRect;//这里可以设置想要截图的区域  
    CGImageRef imageRefRect =CGImageCreateWithImageInRect(imageRef, rect);  
    UIImage *sendImage = [[UIImage alloc] initWithCGImage:imageRefRect];  
    NSData *imageViewData = UIImagePNGRepresentation(sendImage);  
       
//保存到沙盒  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    NSString *documentsDirectory = [paths objectAtIndex:0];  
    NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:@"zone.png"];  
    NSLog(@"%@", savedImagePath);  
    [imageViewData writeToFile:savedImagePath atomically:YES];  
    CGImageRelease(imageRefRect);  
       
//保存到相册  
    UIImage *image = [UIImage imageWithData:imageViewData];  
    UIImageWriteToSavedPhotosAlbum(image, self, nil, nil);  
}  

你可能感兴趣的:(截取view中局部图片)