Se non si desidera utilizzare QRCode in tutti i, è necessario creare il proprio modello per generare/leggere l'immagine.
Ma forse è possibile utilizzare codice QR.
QRCode ha un error correction level. Considerando che puoi ancora rendere il tuo QRCode più esteticamente gradevole come richiesto. Basta tenere a mente "Più alto è il livello di correzione degli errori, minore è la capacità di archiviazione" e puoi personalizzare l'immagine finché l'algoritmo può ottenere le informazioni di cui hai bisogno.
Quando si sta generando l'immagine QRCode si può fare in questo modo:
Swift 3,1
private enum InputCorrectionLevel: String {
case low = "L" // 7%
case medium = "M" // 15%
case high = "Q" // 25%
case ultra = "H" // 30%
}
private enum QRCodeGenerationError {
case initializingFilter
case applyingFilter
}
func qrCode(from string: String, withSize frameSize: CGSize) throws -> CIImage {
guard let filter = CIFilter(name: "CIQRCodeGenerator") else {
throw QRCodeGenerationError.initializingFilter
}
let data = string.data(using: .isoLatin1, allowLossyConversion: false)
filter.setValue(data, forKey: "inputMessage")
filter.setValue(InputCorrectionLevel.low.rawValue, forKey: "inputCorrectionLevel")
guard let outputImage = filter.outputImage else {
throw QRCodeGenerationError.applyingFilter
}
let scaleX = frameSize.width/outputImage.extent.size.width
let scaleY = frameSize.height/outputImage.extent.size.height
let qrCodeCIImage = outputImage.applying(CGAffineTransform(scaleX: scaleX, y: scaleY))
return qrCodeCIImage
}
Proprio il check-in su come questo è andato. Sei riuscito a creare qualcosa di più simile allo snapcode rispetto all'utilizzo della soluzione di seguito? – Chaz
Hi Rohan hai trovato la soluzione su questo voglio costruire lo stesso. –
Hai trovato qualcosa Rohan? – hyd00