2
mac 용 응용 프로그램과 같은 돋보기를 개발하고 있습니다. 내 목표는 확대 할 때 개별 픽셀을 정확하게 지적 할 수있을 것입니다 나는 (이벤트와 : NSEvent)의 mouseMoved에서이 코드를 사용하고 있습니다.CGWindowListCreateImage는 확대/축소시 흐려진 cgImage를 생성합니다.
let captureSize = self.frame.size.width/9 //9 is the scale factor
let screenFrame = (NSScreen.main()?.frame)!
let x = floor(point.x) - floor(captureSize/2)
let y = screenFrame.size.height - floor(point.y) - floor(captureSize/2)
let windowID = CGWindowID(self.windowNumber)
cgImageExample = CGWindowListCreateImage(CGRect(x: x, y: y, width: captureSize,
height: captureSize), CGWindowListOption.optionOnScreenBelowWindow, windowID,
CGWindowImageOption.bestResolution)
의 CGImage의 생성이 CGWindowListCreateImage 방법에서 발생합니다. 내가 나중에 NSView의이을 그릴 때, 그 결과는 다음과 같다 : 일부 안티 앨리어싱이의 CGImage의 작성시 적용된 것처럼
그것은/흐리게 보인다. 제 목표는 각 픽셀을 날카롭게 표현하는 것입니다. 누구든지 올바른 방향으로 나를 가리킬 수 있습니까?
친애하는 @Tuslareb, 당신은 매우 친절하고'상황 '의 예를 제공해 주시겠습니까? 나는 같은 문제에 직면 해있다. 나는 또한'CGWindowListCreateImage'를 사용하여 스크린 샷을 생성하지만 확대 된 결과 CGImage는 흐려집니다. 기본적으로 스크린 샷을 'NSImage'로 변환 한 다음 ImageView 내에 표시합니다. – ixany
@ixany 몇 가지 예제 코드로 답변을 업데이트했습니다. 기본적으로, CGWindowListCreateImage 호출에서 얻은 CGImage를 사용자 정의 NSView의 drawRect 메소드에서 그립니다. 어떤 CGWindowImageOption을 CGWindowListCreateImage 호출에서 사용합니까? – Tuslareb