涂鸦demo(swift)github地址:https://github.com/Darren-chenchen/yiyiTuYa
App Store下载地址: itms-apps://itunes.apple.com/app/id1241312853
这是一款涂鸦软件,能够实现对图片的基本操作,供大家参考,主要功能点有:
效果图
1.截取长图
该功能的主要原理是截取webview的高度所在的区域,所以这种截屏需要在webview加载完毕后获取到webView.scrollView的contensize,然后将webview的高度设置成这个高度再结合上下文进行截屏操作,注意截屏之后webview的尺寸要恢复成之前的尺寸
// 截取webview所有的内容
func screenShot() -> UIImage {
var image = UIImage()
UIGraphicsBeginImageContextWithOptions(self.webView.scrollView.contentSize, true, 0)
//保存webView当前的偏移量
let savedContentOffset = self.webView.scrollView.contentOffset
let saveFrame = self.webView.scrollView.frame`
//将webView的偏移量设置为(0,0)
self.webView.scrollView.contentOffset = CGPoint(x: 0, y: 0)
self.webView.frame = CGRect(x: 0, y: 0, width:
self.webView.scrollView.contentSize.width, height: self.webView.scrollView.contentSize.height)
//在当前上下文中渲染出webView
self.webView.scrollView.layer.render(in: UIGraphicsGetCurrentContext()!)
//截取当前上下文生成Image
image = UIGraphicsGetImageFromCurrentImageContext()!
//恢复webview的偏移量
self.webView.scrollView.contentOffset = savedContentOffset
self.webView.frame = saveFrame
UIGraphicsEndImageContext()