zoukankan      html  css  js  c++  java
  • UIWebView的全屏截图

      项目开发中,我们可能会遇到如下的应用场景:将一篇文章,进行截屏(需要全屏截取,包括滚动部分)后,分享到新浪微博、邮箱等等。前段时间,我在应用开发中实现了该功能,代码也是从网上找到的,自己整理了一下。主要实现截屏的方法如下所示:

     1 // 实现页面的截图(包含滚动部分)
     2 - (NSData *)getImageFromView:(UIView *)view
     3 {
     4     NSData *pngImg;
     5     CGFloat max, scale = 1.0;
     6     CGSize viewSize = [view bounds].size;
     7     
     8     // 获取全屏的Size,包含可见部分和不可见部分(滚动部分)
     9     CGSize size = [view sizeThatFits:CGSizeZero];
    10     
    11     max = (viewSize.width > viewSize.height) ? viewSize.width : viewSize.height;
    12     if( max > 960 )
    13     {
    14         scale = 960/max;
    15     }
    16     
    17     UIGraphicsBeginImageContextWithOptions(size,YES,scale);
    18     
    19     // 设置view成全部展开效果
    20     [view setFrame: CGRectMake(0, 0, size.width, size.height)];
    21     
    22     CGContextRef context = UIGraphicsGetCurrentContext();
    23     [view.layer renderInContext:context];
    24     pngImg = UIImagePNGRepresentation( UIGraphicsGetImageFromCurrentImageContext() );
    25     
    26     UIGraphicsEndImageContext();
    27     return pngImg;
    28 }

      使用的时候,我们可以用下面的代码:

    1 // webView是页面的一个UIWebView控件,这里是实现webView的全屏截图,其他控件各位可以自行试验
    2 NSData *imageData = [self getImageFromView:webView];
    3 [imageData writeToFile:[[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"new.png"] atomically:YES];

      【说明】:实现截图功能,需要引入QuartzCore.framework框架,并且添加如下头文件:

      #include <QuartzCore/QuartzCore.h>

     

  • 相关阅读:
    day17-jdbc 7.Statement介绍
    day17-jdbc 6.Connection介绍
    day17-jdbc 5.url介绍
    day17-jdbc 4.DriverManager详解
    day17-jdbc 3.jdbc快速入门
    SSH原理与运用
    SSH原理与运用
    11 个 Linux 上最佳的图形化 Git 客户端
    11 个 Linux 上最佳的图形化 Git 客户端
    11 个 Linux 上最佳的图形化 Git 客户端
  • 原文地址:https://www.cnblogs.com/eagle927183/p/3476209.html
Copyright © 2011-2022 走看看