Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 在ios中生成网站屏幕截图_Objective C_Ios_Image_Screenshot - Fatal编程技术网

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

Objective c 在ios中生成网站屏幕截图,objective-c,ios,image,screenshot,Objective C,Ios,Image,Screenshot,如问题所述,在iOS设备上,如果用户在uitextfield中输入URL,我希望生成此URL的缩略图捕获。如何做到这一点?不幸的是,我不知道从哪里开始 当然,我可以这样做的一个方法是将这个URL发送到后端,并从那里获取图像截图。我知道如何使用python或php完成这类工作。但是我想避免到后端服务器的额外往返 我想要一些像-(uiimage*)截屏:(nsurl*)url根据你的问题,我想你以后会想要操纵生成的截屏。您将以编程方式添加UIWebView以加载所需的URL,然后对加载的网页进行快照

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

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


我想要一些像-
(uiimage*)截屏:(nsurl*)url

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

  • 将UIImageView连接到viewController,并将其连接到viewController类

    @property (weak, nonatomic) IBOutlet UIImageView *image_Thumbnail;
    
  • 将URL放在名为“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];
    
  • 现在,您已请求加载URL,但除非网页已完全加载,否则无法呈现快照,因此您需要等待网页加载通知。为此,您必须订阅头文件中的webView委托,如下所示

    @interface ViewController : UIViewController<UIWebViewDelegate>
    
    }

  • 现在,您在名为“viewImage”的属性中有了所需的屏幕截图,您可以随时使用它;)


  • 您熟悉opengl es吗?您很可能必须在服务器上执行此操作,因为在iOS上,您必须使用苹果不允许在其AppStore应用程序中访问的webkit。这可能有助于:
    -(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];