2017-01-18 22 views
0

あなたの多くは、UIKitには、Mac OSX apps.Howではありません知っているように私はこれを移植してきた私はMac OSXでサブビューを使ってNSImageを保存するには?

private func screenShotMethod() -> NSImage? { 

    //Create the UIImage 
    NSGraphicsBeginImageContext(self.pickedImge.frame.size) 
    self.pickedImge.layer.render(in: UIGraphicsGetCurrentContext()!) 
    let image = NSGraphicsGetImageFromCurrentImageContext() 
    NSGraphicsEndImageContext() 

    //Save it to the camera roll 
    UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil) 
    return image! 
} 

答えて

0

を追加サブビューでNSImageではを救うことができる私はios.Butのために働いて現在のコードを持っていますthis very related questionで見つけたコードからの回答。

class CustomView : NSView { 

    func saveAScreenShotOfThisViewSomewhere() -> Void { 
     self.lockFocus() 
     let rep = NSBitmapImageRep(focusedViewRect: self.bounds) 
     self.unlockFocus() 
     if let data = rep?.tiffRepresentation { 
      do { 
       try data.write(to: URL(string:"/tmp/someplace.tiff")!, options: Data.WritingOptions.atomic) 
      } catch { 
       Swift.print("error in writing -> \(error.localizedDescription)") 
      } 
     } 
    } 
} 

また表現が、私はこれが役に立てば幸いBMP、GIF、JPEG、PNG、TIFFなど

が含ま

if let data = rep?.representation(using: .JPEG, properties: [String : Any]) { 

    } 

を使用することができます!

+0

これは素晴らしいですが、NSViewではなくNSImageを使用しています。上記の関数は、サブビュー付きのUIImageのスクリーンショットを撮っています。 –

+0

上記のコードを使用して 'NSImageView'をサブクラス化して、イメージビューとそのサブクラスによって表示されます。私はあなたの質問を誤解しましたか? –

関連する問題