Tag: 网页截图

为什么view.layer.renderInContext()为相同大小的屏幕截图占用更多的临时内存

我正在尝试截取固定大小和固定高度的webView的截图。 networking视图可以呈现任何网站。 我注意到,取决于呈现webView.layer.renderInContext使用的临时内存的网站是更高的。 我的理解是,renderInContext首先生成位图中的屏幕截图,我认为,无论内容如何,​​截图的高度和权重都相同时,位图的大小应始终相同。 我的理解是不正确的? 截图的代码是: autoreleasepool{ UIGraphicsBeginImageContextWithOptions(cgSizeToUse, false, 0) webView.layer.renderInContext(UIGraphicsGetCurrentContext()) image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() } 例如:iphone6 Plus的webPage http://www.biography.com/people/ellen-page-267545的截屏宽度= 375,高度= 2000 CGFloat,占用200MB的临时内存。 iPhone 6 Plus的webPage http://en.m.wikipedia.org/wiki/Ellen_Page的屏幕截图,宽度= 375,高度= 2000 CGFloat需要80MB的临时内存。 我不是graphics方面的专家,并且想要了解为什么不同之处,并且如果有另一种方式来取代scrollView内容的屏幕截图,而不是如此内存密集。 另外,如果我能够理解为什么当前的方法内存消耗随内容而变化,这将帮助我优化我的截图代码。