[SWIFT] 프로그래밍 스크린 샷 | 스위프트 3, 맥 OS
SWIFT프로그래밍 스크린 샷 | 스위프트 3, 맥 OS
해결법
-
1.그것의 가능한 예. 이 기능은 JPG 파일로 지정된 경로에 연결된 모든 모니터의 스크린 샷과 쓰기를합니다. 유닉스 타임 스탬프로 파일 이름을 생성합니다.
그것의 가능한 예. 이 기능은 JPG 파일로 지정된 경로에 연결된 모든 모니터의 스크린 샷과 쓰기를합니다. 유닉스 타임 스탬프로 파일 이름을 생성합니다.
func TakeScreensShots(folderName: String){ var displayCount: UInt32 = 0; var result = CGGetActiveDisplayList(0, nil, &displayCount) if (result != CGError.success) { print("error: \(result)") return } let allocated = Int(displayCount) let activeDisplays = UnsafeMutablePointer<CGDirectDisplayID>.allocate(capacity: allocated) result = CGGetActiveDisplayList(displayCount, activeDisplays, &displayCount) if (result != CGError.success) { print("error: \(result)") return } for i in 1...displayCount { let unixTimestamp = CreateTimeStamp() let fileUrl = URL(fileURLWithPath: folderName + "\(unixTimestamp)" + "_" + "\(i)" + ".jpg", isDirectory: true) let screenShot:CGImage = CGDisplayCreateImage(activeDisplays[Int(i-1)])! let bitmapRep = NSBitmapImageRep(cgImage: screenShot) let jpegData = bitmapRep.representation(using: NSBitmapImageRep.FileType.jpeg, properties: [:])! do { try jpegData.write(to: fileUrl, options: .atomic) } catch {print("error: \(error)")} } } func CreateTimeStamp() -> Int32 { return Int32(Date().timeIntervalSince1970) }
-
2.
let displayID = CGMainDisplayID() let imageRef = CGDisplayCreateImage(displayID)
from https://stackoverflow.com/questions/39691106/programmatically-screenshot-swift-3-macos by cc-by-sa and MIT license
'SWIFT' 카테고리의 다른 글
[SWIFT] 스위프트의 표준 라이브러리와 이름 충돌 (0) | 2020.11.06 |
---|---|
[SWIFT] AWS Cognito 스위프트 자격 증명 제공자는 "로그인이되지 않습니다 : 사용 AWSIdentityProviderManager" (0) | 2020.11.06 |
[SWIFT] DestinationViewController SEGUE와 UINavigationController가 스위프트 (0) | 2020.11.06 |
[SWIFT] 클래스 PLBuildVersion는 모두 / 응용 프로그램에서 구현 [중복] (0) | 2020.11.06 |
[SWIFT] 스위프트 : switch 문에서 테스트 클래스 유형 (0) | 2020.11.06 |