【问题标题】:Generate a website screen capture in ios在 ios 中生成网站屏幕截图
【发布时间】:2012-04-04 17:37:14
【问题描述】:

正如问题所说,在 iOS 设备上,如果用户在 uitextfield 中输入 URL,我想生成该 URL 的缩略图捕获。如何做到这一点?不幸的是,我不知道从哪里开始。

当然,我可以做到这一点的一种方法是将此 URL 发送到后端并从那里获取图像屏幕截图。我知道如何使用 python 或 php 来做这种事情。但我想避免到我的后端服务器的额外往返。

我想要类似的东西 - (uiimage *)screenCapture:(nsurl *)url

【问题讨论】:

  • 你熟悉opengl es吗?
  • 您很可能必须在服务器上执行此操作,因为在 iOS 上您必须使用 Apple 不允许在其 AppStore 应用程序中访问的 webkit

标签: objective-c ios image screenshot


【解决方案1】:

根据您的问题,我认为您以后会想要操作生成的屏幕截图。您将以编程方式添加 UIWebView 以加载所需的 URL,然后对加载的网页进行快照,然后删除 UIWebView 以下是步骤

  1. 一个 UIImageView 到你的 viewController 并将它连接到你的 viewController 类

    @property (weak, nonatomic) IBOutlet UIImageView *image_Thumbnail;
    
  2. 在名为“webPageUrlString”的变量中添加以下行

    UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.frame];
    webView.backgroundColor = [UIColor redColor];
    NSURL *websiteUrl = [NSURL URLWithString:**webPageUrlString**];
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:websiteUrl];
    [webView loadRequest: urlRequest];
    webView.delegate = self;
    [self.view addSubview:webView];
    
  3. 现在您已请求加载 URL,但无法呈现快照,除非网页已完全加载,因此您需要等待网页加载通知。为此,您必须订阅像这样的头文件中的webView委托

    @interface ViewController : UIViewController<UIWebViewDelegate>
    
  4. 现在您将实现“webViewDidFinishLoad”并拍摄您想要的快照,然后隐藏和删除 webView。

    -(void)webViewDidFinishLoad:(UIWebView *)webView{
    
    viewImage = [[UIImageView alloc] initWithFrame:self.view.frame];
    viewImage.backgroundColor = [UIColor greenColor];
    
    UIGraphicsBeginImageContext(webView.bounds.size);
    [self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
    viewImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    [webView setAlpha:0];
    [webView removeFromSuperview];
    
    [self.view addSubview:viewImage];
    

    }

  5. 现在您在名为“viewImage”的属性中获得了您想要的屏幕截图,您可以用它做任何您想做的事情;)

【讨论】:

    猜你喜欢
    • 2011-05-31
    • 2016-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2014-10-16
    • 2011-05-27
    • 2012-11-09
    相关资源
    最近更新 更多