如何将NSData转换为数据

时间:2016-10-17 20:25:17

标签: swift3 nsdata nsimage

我创建了一个UInt8数组

var pixels: [UInt8] = []

由alpha,red,green和blue组件填充,需要从他的数组创建NSImage。我写了以下代码

let imageData = NSData(bytes: pixels, length: 1000)
Swift.print(imageData)
newImage = NSImage(data: imageData as Data)!

其中print命令打印我的字节,如ff0493f8 ff455772 ffa281ed ff9c14d7 ff6eb302 ...但是newImage的创建失败,错误"致命错误:在展开可选值"时意外发现nil。 我做错了什么? 感谢。

1 个答案:

答案 0 :(得分:0)

你有一些问题。

  1. 为什么要使用NSData?只需使用Data
  2. 您的错误是imageData实际上并不代表有效图片,因此NSImagenil,但您试图强行打开它。
  3. 尝试这样的事情:

    let imageData = Data(bytes: pixels)
    Swift.print(imageData)
    if let newImage = NSImage(data: imageData) {
        // Do something with the image
    } else {
        // oops - can't create the image
    }