OSDN Git Service

High Sierraでスクリーンショットのサイズがおかしい問題を修正した
[kcd/KCD.git] / KCD / ScreenshotRegister.swift
1 //
2 //  ScreenshotRegister.swift
3 //  KCD
4 //
5 //  Created by Hori,Masaki on 2017/11/05.
6 //  Copyright © 2017年 Hori,Masaki. All rights reserved.
7 //
8
9 import Cocoa
10
11 class ScreenshotRegister {
12     
13     
14     let url: URL
15     
16     init(_ url: URL) {
17         
18         self.url = url
19     }
20     
21     func registerScreenshot(_ image: NSBitmapImageRep, name: String, completeHandler: @escaping (URL) -> Void) {
22         
23         DispatchQueue(label: "Screenshot queue").async {
24             
25             let size = image.size
26             if size != NSSize(width: 800, height: 480) {
27                 image.size = NSSize(width: 800, height: 480)
28             }
29             
30             guard let data = image.representation(using: .jpeg, properties: [:]) else { return }
31             
32             let url = self.url
33                 .appendingPathComponent(name)
34                 .appendingPathExtension("jpg")
35             let pathURL = FileManager.default.uniqueFileURL(url)
36             
37             do {
38                 
39                 try data.write(to: pathURL)
40                 
41             } catch {
42                 
43                 print("Can not write image")
44                 return
45             }
46             
47             DispatchQueue.main.async {
48                 
49                 completeHandler(pathURL)
50             }
51         }
52     }
53 }