记录一下
static func creatQRCode(_ QRCodeStr: String, QRCodeSize: CGSize) -> NSImage? {
let filter = CIFilter(name: "CIQRCodeGenerator")
filter?.setDefaults()
let data = QRCodeStr.data(using: .utf8)
filter?.setValue(data, forKey: "inputMessage")
let ciImage = filter?.outputImage
let extent = ciImage!.extent
let scale = 5.0
let context = CIContext(options: nil)
guard let bitImage = context.createCGImage(ciImage!, from: extent) else { return nil }
let QRCodeWidth = extent.width * scale
let QRCodeHeight = extent.height * scale
let cs = CGColorSpaceCreateDeviceGray()
let bitRef = CGContext(data: nil, width:Int(QRCodeWidth), height: Int(QRCodeHeight), bitsPerComponent: 8, bytesPerRow: 0, space: cs, bitmapInfo: CGImageAlphaInfo.none.rawValue)
bitRef?.interpolationQuality = .none
bitRef?.scaleBy(x: scale, y: scale)
bitRef?.draw(bitImage, in: extent)
guard let scaleImage = bitRef?.makeImage() else { return nil }
let QRCodeImage = NSImage(cgImage: scaleImage, size: QRCodeSize)
return QRCodeImage
}