18 lines
615 B
Swift
18 lines
615 B
Swift
import CoreImage
|
|
import CoreImage.CIFilterBuiltins
|
|
import CoreGraphics
|
|
|
|
struct WatchQRCodeService {
|
|
private let context = CIContext()
|
|
|
|
func qrCode(from payload: String) -> CGImage? {
|
|
let data = Data(payload.utf8)
|
|
let filter = CIFilter.qrCodeGenerator()
|
|
filter.setValue(data, forKey: "inputMessage")
|
|
filter.correctionLevel = "M"
|
|
guard let outputImage = filter.outputImage else { return nil }
|
|
let scaledImage = outputImage.transformed(by: CGAffineTransform(scaleX: 10, y: 10))
|
|
return context.createCGImage(scaledImage, from: scaledImage.extent)
|
|
}
|
|
}
|