2017-09-06 7 views
0

IKImageViewでNSImageからイメージを設定しようとしています。 NSImage.cgImageを使ってNSImageからCGImageを取得していますが、IKImageViewに設定するには画像のプロパティが必要です。これらのプロパティはどのように取得できますか?Swift OSX - IKImageViewでNSImageを設定する

import Cocoa 
import Quartz 

class AjustarImagemViewController: NSViewController { 

    @IBOutlet weak var imagemIKImageView: IKImageView! 

    var imagem: NSImage? //Receive an image from another view 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     print(imagem) 

     if let imagemRecebida = imagem { 


      let cgImagem = imagemRecebida.cgImage(forProposedRect: nil, context: nil, hints: nil) 

      imagemIKImageView.setImage(cgImagem, imageProperties: [AnyHashable : Any]) 
     } 
    } 

    @IBAction func voltarButtonClicked(_ sender: NSButton) { 

     dismiss(self) 
    } 
} 
+0

を、あなたは空の辞書を渡してみましたか? –

答えて

1

このような何かは、トリックを行う必要があります。

CGImageSourceRef source; 

source = CGImageSourceCreateWithData((CFDataRef)[cgImagem TIFFRepresentation], NULL); 

NSDictionary* props = (NSDictionary*)CGImageSourceCopyPropertiesAtIndex(source, 0, NULL); 

imagemIKImageView.setImage(cgImagem, imageProperties: props) 
+0

'CGImageSourceCreateWithData'を使ったので、' CFRelease(source) 'を呼び出す必要があります。 ARCはImageIOには適用されず、ソースを公開せずにメモリリークを作成しただけです。 – Abizern

関連する問題