// // QRCode.swift // OS Vault // // Author: Simon-Pierre Boucher // Mail: contact@spboucher.ai // import AppKit import CoreImage enum QRCode { /// Renders a crisp (non-interpolated) QR code for the given string. static func image(for string: String, side: CGFloat = 240) -> NSImage? { guard let filter = CIFilter(name: "CIQRCodeGenerator") else { return nil } filter.setValue(Data(string.utf8), forKey: "inputMessage") filter.setValue("M", forKey: "inputCorrectionLevel") guard let output = filter.outputImage else { return nil } let scale = side / output.extent.width let scaled = output.transformed(by: CGAffineTransform(scaleX: scale, y: scale)) guard let cgImage = CIContext().createCGImage(scaled, from: scaled.extent) else { return nil } return NSImage(cgImage: cgImage, size: NSSize(width: side, height: side)) } }