【问题标题】:how to get png representation of an NSImage object in Swift如何在 Swift 中获取 NSImage 对象的 png 表示
【发布时间】:2015-01-27 13:13:48
【问题描述】:

我知道我可以使用“UIImagePNGRepresentation(UIImagexxx)”来获取 UIImage 对象的 png 表示。 但我不确定如何为 NSImage 做类似的事情。我只能找到可用于 NSImage 对象的 TIFFRepresentation。

有什么想法吗?非常感谢

【问题讨论】:

  • 谢谢托马斯。我现在正在努力。我不清楚为什么我不能使用像“representationUsingType(NSBitmapFileType.NSPNGFileType,properties:nil)”这样的函数它说[NSObject:AnyObject]不符合协议“NilLiteralConvertible”。我在谷歌上搜索了这个,但似乎我应该能够像上面提到的那样使用它。你知道为什么会这样吗?谢谢
  • 您应该打开一个新问题并发布代码。它与选项有关,但很难在简短的评论中说出来。

标签: swift


【解决方案1】:

为了帮助编写跨平台代码,我实现了一个在 Mac 上运行的UIImagePNGRepresentation() 版本(并使用NSImage):

#if os(macOS)

public func UIImagePNGRepresentation(_ image: NSImage) -> Data? {
    guard let cgImage = image.cgImage(forProposedRect: nil, context: nil, hints: nil)
        else { return nil }
    let imageRep = NSBitmapImageRep(cgImage: cgImage)
    imageRep.size = image.size // display size in points
    return imageRep.representation(using: .png, properties: [:])
}

#endif

【讨论】:

    猜你喜欢
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 2014-09-25
    • 1970-01-01
    • 2016-11-30
    • 1970-01-01
    相关资源
    最近更新 更多