如何使用Swift从NSData创建NSImage

时间:2017-12-13 08:35:17

标签: swift image nsimage

很抱歉问这么简单,但这是我在Swift中的第一个程序...我尝试从NSData创建一个NSImage,其中包含我从磁盘加载的JPEG图像(URL在数组名称chooseFiles [])。

编译器在第二次发出错误并且卡住了:'NSData'不能隐式转换为'Data';你的意思是使用'as'来明确转换?

谢谢

let imageAsNSData = NSData(contentsOf: chosenFiles[0])  // UIKit/UIImage for iOS not MacOS !
let imageAsNSImage = NSImage(data: imageAsNSData)
if (imageAsNSImage) {
   // image could be created from NSData
   //

} else {

   // image could NOT be created from NSData
   //

}

-----编辑-----

我试过

let imageAsNSImage = NSImage(data: imageAsNSData! as Data) if (imageAsNSImage != nil) { 这似乎工作(至少对编译器而言)。我对么?

2 个答案:

答案 0 :(得分:2)

您可以使用swift数据来获取图片:

do {
    let imageData = try Data(contentsOf:  chosenFiles[0])
    NSImage(data: imageData)
} catch {
    print("Unable to load data: \(error)")
}

答案 1 :(得分:0)

现在在swift3中,NSData被Data替换。从url下载图像时,将其存储为Data not NSData。

imageView.image = NSImage.init(data: data! as Data)