웹보기가 사용자에게 표시되는 이미지를 캡처하려고하므로 웹 페이지의 색상을 분석 할 수 있습니다. 나는 그것이 부모의에서 이미지를 얻을 때, 나는 기본적으로 페이지가 렌더링 된 경우에도, 흰색 상자를 얻고있다 : 나는 실제의 속성에 대한 액세스 권한을 얻을 수없는 것처럼WKWebView 스크린 샷
func makeImageSnapshot()-> (NSImage)
{
let imgSize = self.view.bounds.size
let bir = self.viewbitmapImageRepForCachingDisplayInRect(self.webView!.view.bounds)
bir.size = imgSize
self.webView.cacheDisplayInRect(self.view.bounds, toBitmapImageRep:bir)
let image = NSImage(size:imgSize)
image.addRepresentation(bir)
self.image = image
return image
}
func saveSnapshot()
{
let imgRep = self.image!.representations[0]
let data = imgRep.representationUsingType(NSBitmapImageFileType.NSPNGFileType, properties: nil)
data.writeToFile("/tmp/file.png", atomically: false)
}
그것은 나에게 보인다 WebView 내부의보기 (이 경우에는 경계). 내가 그것을 액세스하려고, 컴파일러 barfs :
/Users/josh/Canary/MacOsCanary/canary/canary/Modules/Overview/Overview.swift:55:37 '(NSView의! stringForToolTip : NSToolTipTag, 지점 : NSPoint, userData : UnsafePointer <()>) -> String! ' 'bounds'라는 회원이 없습니다
내 생각 엔 OS X 및 iOS에서 사용되는 확장 접근 방식 때문입니다. 어떤 아이디어가 필요합니까? 아니면 기존 WebView를 다시 사용해야합니까?
문자열의 "경계"에 액세스하려고합니다. – nhgrif
@ Josh iOS 용 솔루션을 찾았습니까? 현재 나는 snapshotViewAfterScreenUpdates를 사용하고 있습니다. 하지만 webview가 렌더링 된 후에 호출해야하므로 didFinishNavigation에서 0.1 초를 기다렸다가 snapshotViewAfterScreenUpdates를 호출합니다. 그리 그리 convinient하고 안정적으로 ( – sidslog