QRCode Generierung in Swift

Da ich selbst nach einer Funktion zum Generieren von QR Codes direkt in Swift ohne Webdienst gesucht habe, um eine „richtige“ Offline Applikation zu generieren, dachte ich, andere könnten es vielleicht auch brauchen 😉

Erstellt folgende Funktion:

func generiereQRCode(from string: String) -> UIImage? {
    let data = string.data(using: String.Encoding.ascii)

    if let filter = CIFilter(name: "CIQRCodeGenerator") {
        filter.setValue(data, forKey: "inputMessage")
        let transform = CGAffineTransform(scaleX: 3, y: 3)

        if let output = filter.outputImage?.transformed(by: transform) {
            return UIImage(ciImage: output)
        }
    }

    return nil
}

Danach könnt ihr den QR Code mit folgendem Aufruf generieren und beispielsweise in ein UIImageView setzen

let image = generiereQRCode(from: "Ich werde umgewandelt zum QR Code")

Auch „normale“ Barcodes können mit der Funktion erstellt werden. Dazu muss lediglich die Zeile

if let filter = CIFilter(name: "CIQRCodeGenerator") {

durch

if let filter = CIFilter(name: "CICode128BarcodeGenerator") {

ersetzt werden. Der Rest der Funktion kann so bleiben. Theoretisch kann man die verschiedenen Barcode Typen auch als UserDefault setzen und von dort laden um sie beispielsweise über die Einstellungen zu verwalten. Ein Beispiel dafür findet Ihr in der mein Lager – Lagerverwaltungsapp 😉

Schreibe einen Kommentar

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.