gpt4 book ai didi

objective-c - 在 ios 中生成网站屏幕截图

转载 作者:可可西里 更新时间:2023-11-01 05:57:35 32 4
gpt4 key购买 nike

如问题所述,在 iOS 设备上,如果用户在 uitextfield 中输入 URL,我想生成该 URL 的缩略图。如何实现?不幸的是,我不知道从哪里开始。

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

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

最佳答案

根据您的问题,我认为您之后会想要操作生成的屏幕截图。您将以编程方式添加一个 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 委托(delegate)

    @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”的属性中有了您想要的屏幕截图,您可以用它做任何您想做的事;)

关于objective-c - 在 ios 中生成网站屏幕截图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10016401/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com