【问题标题】:NSImage to NSData as PNG SwiftNSImage 到 NSData 作为 PNG Swift
【发布时间】:2015-03-25 17:34:54
【问题描述】:

我正在编写基于 iOS 应用程序的 Mac 应用程序。下面的代码将 UIImage 转换为 NSData 以上传到 Parse.com。

我想为 Mac 做同样的事情,但我似乎无法将它转换为 NSData。我该怎么办?

谢谢

var image = UIImage(named: "SmudgeInc")

let imageData = UIImagePNGRepresentation(image)

let imageFile = PFFile(name:"image.png", data:imageData)

【问题讨论】:

    标签: swift macos png nsdata nsimage


    【解决方案1】:

    您可以使用NSImage 属性TIFFRepresentation 将您的NSImage 转换为NSData

    let imageData = yourImage.TIFFRepresentation
    

    如果您需要将图像数据保存为 PNG 文件,您可以使用 NSBitmapImageRep(data:)representationUsingType 创建一个扩展来帮助您将 Data 转换为 PNG 格式:

    更新:Xcode 11 • Swift 5.1

    extension NSBitmapImageRep {
        var png: Data? { representation(using: .png, properties: [:]) }
    }
    extension Data {
        var bitmap: NSBitmapImageRep? { NSBitmapImageRep(data: self) }
    }
    extension NSImage {
        var png: Data? { tiffRepresentation?.bitmap?.png }
    }
    

    用法

    let picture = NSImage(contentsOf: URL(string: "https://i.stack.imgur.com/Xs4RX.jpg")!)!
    
    let imageURL = FileManager.default.urls(for: .desktopDirectory, in: .userDomainMask).first!.appendingPathComponent("image.png")
    if let png = picture.png {
        do {
            try png.write(to: imageURL)
            print("PNG image saved")
        } catch {
            print(error)
        }
    }
    
    猜你喜欢
    • 2011-08-11
    • 2011-08-16
    • 2016-09-28
    • 2012-07-28
    • 2014-06-09
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多