- 通常截图的时候,如果需要截scroll,或者tableview的时候就不能全屏截图了。
- 一般在做些排行榜时需要截图发到朋友圈 列表太长无法截取所有列表,下面的方法亲测有效
截图方法。
图片保存的回调
代码部分
- (void)btnAction:(UIButton *)sender { UIImage* image = nil; UIGraphicsBeginImageContextWithOptions(self.tableView.contentSize, YES, [UIScreen mainScreen].scale); CGPoint savedContentOffset = self.tableView.contentOffset; CGRect savedFrame = self.tableView.frame; self.tableView.contentOffset = CGPointZero; self.tableView.frame = CGRectMake(0, 0, self.tableView.contentSize.width, self.tableView.contentSize.height); [self.tableView.layer renderInContext: UIGraphicsGetCurrentContext()]; image = UIGraphicsGetImageFromCurrentImageContext(); self.tableView.contentOffset = savedContentOffset; self.tableView.frame = savedFrame; UIGraphicsEndImageContext(); if (image != nil) { UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), NULL); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- (void)image: (UIImage *) image didFinishSavingWithError: (NSError *) error contextInfo: (void *) contextInfo{ NSString *msg = nil ; if(error != NULL){ msg = @"保存图片失败" ; }else{ msg = @"保存图片成功,可到相册查看" ; } UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"信息提示" message:msg delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil]; [alert show];}
转自:http://blog.csdn.net/cxliao/article/details/77747218
普通截取全屏
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; background-color: #ffffff}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #3e1e81; background-color: #ffffff}span.s1 {color: #6122ae}span.s2 {color: #000000}span.s3 {color: #703daa}span.s4 {color: #539aa4}span.s5 {color: #c42275}
-(UIImage *)getBgImage
{
UIGraphicsBeginImageContext([UIApplication sharedApplication].keyWindow.size);
[[UIApplication sharedApplication].keyWindow.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
截取图tableView 不要导航栏部分
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #1e9421; background-color: #ffffff}p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Menlo; color: #000000; background-color: #ffffff}span.s1 {color: #6122ae}span.s2 {color: #703daa}span.s3 {color: #3e1e81}span.s4 {color: #c42275}span.s5 {color: #000000}span.s6 {color: #c81b13}span.s7 {color: #0435ff}
//图片模糊
-(UIImage *)coreBlurImage:(UIImage *)image withBlurNumber:(CGFloat)blur
{
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *inputImage= [CIImage imageWithCGImage:image.CGImage];
//设置filter
CIFilter *filter = [CIFilter filterWithName:@"CIGaussianBlur"];
[filter setValue:inputImage forKey:kCIInputImageKey]; [filter setValue:@(blur) forKey: @"inputRadius"];
//模糊图片
CIImage *result=[filter valueForKey:kCIOutputImageKey];
CGImageRef outImage=[context createCGImage:result fromRect:[result extent]];
UIImage *blurImage=[UIImage imageWithCGImage:outImage];
CGImageRelease(outImage);
return blurImage;
}