首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift 4.1无法获取此NSImage的位图表示

Swift 4.1无法获取此NSImage的位图表示
EN

Stack Overflow用户
提问于 2018-06-06 22:29:02
回答 1查看 568关注 0票数 6

此代码示例在macOS操场中工作:

代码语言:javascript
复制
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中它是如何工作的?

EN

回答 1

Stack Overflow用户

发布于 2019-01-05 22:01:51

我遇到了同样的问题,尽管我使用的是一个macOS项目,也不能准确地指出这里出了什么问题,但我找到了一个解决方法,可以通过使用CustomPlaygroundDisplayConvertible来修复CIImage的操场渲染

只需将以下代码添加到您的游乐场顶部,您的图像将再次呈现

代码语言:javascript
复制
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)!
    }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50722950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档