//指定视图截图
-(UIImage *)screenShotView:(UIView *)view{
UIImage *imageRet = [[UIImage alloc]init];
UIGraphicsBeginImageContextWithOptions(view.frame.size, false, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
imageRet = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return imageRet;
}
//获得某个范围内的屏幕图像
- (UIImage *)imageFromView: (UIView *) theView atFrame:(CGRect)rect
{
UIGraphicsBeginImageContext(theView.frame.size);
//用这个不会失真
// UIGraphicsBeginImageContextWithOptions(theView.frame.size, false, 0.0);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context);
//这里其实就是裁剪
UIRectClip(rect);
[theView.layer renderInContext:context];
//设定颜色:透明
[[UIColor clearColor] setFill];
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
//获取 某图片 指定范围(rect)内的cgImage
CGImageRef cgImage = CGImageCreateWithImageInRect(theImage.CGImage, rect);
UIImage * returnImage = [UIImage imageWithCGImage:cgImage];
CGImageRelease(cgImage);
UIGraphicsEndImageContext();
return returnImage;
}