Swift3 带MacOS的GPUImage-如何将处理过的文件保存到磁盘

Swift3 带MacOS的GPUImage-如何将处理过的文件保存到磁盘,swift3,gpuimage,nsimage,Swift3,Gpuimage,Nsimage,我目前正在将一些代码从CoreImage移植到GPUImage,在将处理过的文件保存到磁盘时遇到问题。虽然这对CoreImage有效: guard let blurFilter = CIFilter(name: "CIGaussianBlur"), let imageURL = Bundle.main.url(forResource: "my-image", withExtension: "png"), let ciImage = CIImage(contentsOf:

我目前正在将一些代码从CoreImage移植到GPUImage,在将处理过的文件保存到磁盘时遇到问题。虽然这对CoreImage有效:

guard
    let blurFilter = CIFilter(name: "CIGaussianBlur"),
    let imageURL = Bundle.main.url(forResource: "my-image", withExtension: "png"),
    let ciImage = CIImage(contentsOf: imageURL)
else {
    return
}

blurFilter.setValue(ciImage, forKey: kCIInputImageKey)
blurFilter.setValue(100, forKey: kCIInputRadiusKey)

guard
    let result = blurFilter.outputImage,
    let cgImage = context.createCGImage(result, from: result.extent)
else {
    return
}

let destinationURL = desktopURL.appendingPathComponent("output.png")
let nsImage = NSImage(cgImage: cgImage, size: ciImage.extent.size)
以下代码已移植到GPUImage:

let testImage = NSImage(named:"my-image.png")!
let blurFilter = GaussianBlur()
let filteredImage = testImage.filterWithOperation(blurFilter)

let desktopURL = FileManager.default.urls(for: .desktopDirectory, in: .userDomainMask).first!
let destinationURL = desktopURL.appendingPathComponent("output.png")
let nsImage = NSImage(nsImage: filteredImage, size: filteredImage.extent.size)
给出与最后一行相关的以下错误消息:

Value type of 'NSImage' has no member 'extent'

filteredImage
是一个NSImage。在核心映像代码中,
ciImage
是一个,嗯,ciImage。CIImage有一个
区段
属性,NSImage没有

无需在第二个代码中创建
nsImage
filteredImage
已经是nsImage了。你完了