在iOS上生成本地网页的缩略图

在iOS上生成本地网页的缩略图,第1张

概述我有一组本地 HTML页面,我想批量生成缩略图(我只想显示缩略图,而不是完整的网页).这就是我实现这个目标的方式: NSString* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:link];NSURL* url = [NSURL fileURLWithPath:path];NSURL 我有一组本地 HTML页面,我想批量生成缩略图(我只想显示缩略图,而不是完整的网页).这就是我实现这个目标的方式:

Nsstring* path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:link];NSURL* url = [NSURL fileURLWithPath:path];NSURLRequest* request = [NSURLRequest requestWithURL:url];UIWebVIEw* webVIEw = [[UIWebVIEw alloc] initWithFrame:CGRectMake(0,725,1004)];webVIEw.delegate = cell;[webVIEw loadRequest:request];[self.vIEw addSubvIEw:webVIEw]; // doesn't work without this line,but then the UIWebVIEw is onscreen

然后在代表中:

- (voID)webVIEwDIDFinishLoad:(UIWebVIEw *)webVIEw{     [self performSelector: @selector(render:) withObject: webVIEw afterDelay: 0.01f];}- (voID) render: (ID) obj{  UIWebVIEw* webVIEw = (UIWebVIEw*) obj;  CGSize thumbsize = CGSizeMake(96,72);  UIGraphicsBeginImageContext(thumbsize);  CGContextRef context = UIGraphicsGetCurrentContext();  CGfloat scalingFactor = thumbsize.wIDth/webVIEw.frame.size.wIDth;  CGContextScaleCTM(context,scalingFactor,scalingFactor);  [webVIEw.layer renderInContext: context];  UIImage *resultimage = UIGraphicsGetimageFromCurrentimageContext();  UIGraphicsEndImageContext();  self.thumbnail.image = resultimage;}

这是我的问题:

1)我的一般方法是否正确?这是批量处理网页缩略图的最有效方法吗?

2)我希望能够从屏幕外的UIWebVIEw渲染缩略图,但是除非我将UIWebVIEw添加到视图层次结构中,否则不会调用webVIEwDIDFinishLoad :.有没有办法可以避免这种情况?

3)如果我尝试在webVIEwDIDFinishLoad:中捕获UIWebVIEw的图像,我会得到一个空白图像.我必须为捕获工作做出人为的延迟.有什么方法吗?

谢谢!

解决方法 1)这似乎是我所知道的唯一方法,而不依赖于第三方基于服务器的API(如果存在)

2)您可以通过将其框架设置为屏幕外的位置来在屏幕外绘制UIWebVIEw.例如320,568,1008.我还没有测试过,但您甚至可以将视图设置为1 x 1px帧.

3)我想这是因为当调用webVIEwDIDFinishLoad:时,在Web视图上调用了SetNeedsdisplay(),但Web视图尚未重新绘制.我不确定解决这个问题的方法.

总结

以上是内存溢出为你收集整理的在iOS上生成本地网页的缩略图全部内容,希望文章能够帮你解决在iOS上生成本地网页的缩略图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/999391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存