我正在尝试将 NSImage
转换为 base64 字符串编码。
extension NSImage{
// Convert NSImage self to a string of base64 encoding
func getBase64String() -> String{
guard let tiffData = self.tiffRepresentation else {
printError("Failed to get tiffRepresentation")
exit(-1)
}
guard let bitmap: NSBitmapImageRep = NSBitmapImageRep(data: tiffData) else {
printError("Failed to get Bitmap representation from tiffRepresentation")
exit(-1)
}
guard let data = bitmap.representation(using: .png, properties: [:]) else {
printError("Failed to make image data with PNG type")
exit(-1)
}
let tiff_base64 = "data:image/png;base64," + tiffData.base64EncodedString()
let bitmap_base64 = "data:image/png;base64," + data.base64EncodedString()
return bitmap_base64
}
}
我使用结果将图像嵌入到 html 文件中,我发现 tiff_base64
和 bitmap_base64
都可以工作。但是,同一图像的字符串看起来有些不同。
Stack Overflow 上许多将图像转换为 base64 的示例都是从位图数据调用 base64EncodedString()
。我想知道使用 tiff_base64
或 bitmap_base64
真的很重要吗?
最佳答案
TIFF 和 PNG 是两种不同的图像格式。使用 Base 64 与您的问题确实无关。
首先决定您需要哪种图像格式(这取决于您对结果执行的操作。一旦您决定是否需要将图像表示为 PNG 或 TIFF(或 JPEG 或任何其他支持的格式),则可以应用该数据的 Base64 编码。
关于swift - tiffRepresentation 和 bitmapRepresentation 在 Base64 字符串编码方面的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48694846/