此代码示例在macOS操场中工作:
import Cocoa
import XCPlayground
func getResImg(name: String, ext: String) -> CIImage {
guard let fileURL = Bundle.main.url(forResource: name, withExtension: ext) else {
fatalError("can't find image")
}
guard let img = CIImage(contentsOf: fileURL) else {
fatalError("can't load image")
}
return img
}
var img = getResImg(name: "noise", ext: "jpg")升级到Swift 4.1后不会。错误:无法获取此NSImage的位图表示。
在Swift 4.1中它是如何工作的?
发布于 2019-01-05 22:01:51
我遇到了同样的问题,尽管我使用的是一个macOS项目,也不能准确地指出这里出了什么问题,但我找到了一个解决方法,可以通过使用CustomPlaygroundDisplayConvertible来修复CIImage的操场渲染
只需将以下代码添加到您的游乐场顶部,您的图像将再次呈现
extension CIImage: CustomPlaygroundDisplayConvertible {
static let playgroundRenderContext = CIContext()
public var playgroundDescription: Any {
let jpgData = CIImage.playgroundRenderContext.jpegRepresentation(of: self, colorSpace: CGColorSpace(name: CGColorSpace.sRGB)!, options: [:])!
return NSImage(data: jpgData)!
}
}https://stackoverflow.com/questions/50722950
复制相似问题