美文网首页
iOS 网页截屏

iOS 网页截屏

作者: Devin_明 | 来源:发表于2019-03-21 10:57 被阅读0次

    #pragma mark--截屏处理

    //截屏处理

    - (UIImage*)cutPic{

     CGRectsnapshotFrame = CGRectMake(0, 0, _webView.scrollView.contentSize.width, _webView.scrollView.contentSize.height);

    UIEdgeInsetssnapshotEdgeInsets = UIEdgeInsetsZero;

     UIImage*shareImage = [selfsnapshotViewFromRect:snapshotFrame withCapInsets:snapshotEdgeInsets];

     returnshareImage;

    }

    // 网页长截图

    - (UIImage*)snapshotViewFromRect:(CGRect)rect withCapInsets:(UIEdgeInsets)capInsets {

     CGFloatscale = [UIScreenmainScreen].scale;

     CGSizeboundsSize = self.webView.bounds.size;

     CGFloatboundsWidth = boundsSize.width;

     CGFloatboundsHeight = boundsSize.height;

     CGSizecontentSize = self.webView.scrollView.contentSize;

     CGFloatcontentHeight = contentSize.height;

     //    CGFloat contentWidth = contentSize.width;

     CGPointoffset = self.webView.scrollView.contentOffset;

        [self.webView.scrollViewsetContentOffset:CGPointMake(0, 0)];

     NSMutableArray*images = [NSMutableArrayarray];

     while(contentHeight > 0) {

     UIGraphicsBeginImageContextWithOptions(boundsSize, NO, [UIScreenmainScreen].scale);

            [self.webView.layerrenderInContext:UIGraphicsGetCurrentContext()];

     UIImage*image = UIGraphicsGetImageFromCurrentImageContext();

     UIGraphicsEndImageContext();

    [images addObject:image];

     CGFloatoffsetY = self.webView.scrollView.contentOffset.y;

            [self.webView.scrollViewsetContentOffset:CGPointMake(0, offsetY + boundsHeight)];

            contentHeight -= boundsHeight;

        }

        [self.webView.scrollViewsetContentOffset:offset];

     CGSizeimageSize = CGSizeMake(contentSize.width* scale,

                                      contentSize.height* scale);

     UIGraphicsBeginImageContext(imageSize);

    [images enumerateObjectsUsingBlock:^(UIImage*image, NSUIntegeridx, BOOL*stop) {

    [image drawInRect:CGRectMake(0,

                                         scale * boundsHeight * idx,

                                         scale * boundsWidth,

                                         scale * boundsHeight)];

        }];

     UIImage*fullImage = UIGraphicsGetImageFromCurrentImageContext();

     UIGraphicsEndImageContext();

     UIImageView* snapshotView = [[UIImageViewalloc]initWithFrame:CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height)];

        snapshotView.image= [fullImage resizableImageWithCapInsets:capInsets];

     NSData*data = UIImageJPEGRepresentation(snapshotView.image, 0.3);

     return[UIImageimageWithData:data];

    }

    相关文章

      网友评论

          本文标题:iOS 网页截屏

          本文链接:https://www.haomeiwen.com/subject/uzxqvqtx.html