How-to generate a QR code with the logo in the middle using CIQRCodeGenerator

Rodrigo Moreno picture Rodrigo Moreno · Mar 2, 2015 · Viewed 7.1k times · Source

I am trying to generate a QR code that has a logo in the middle, as it is: enter image description here.

I am using a code I found here, my code is:

func generateQrCode(message: String!) -> CIImage! {

    var data = message.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)

    var filter: CIFilter = CIFilter(name: "CIQRCodeGenerator")
    filter.setValue(data, forKey: "inputMessage")
    filter.setValue("H", forKey: "inputCorrectionLevel")

    return filter.outputImage
}

How could adapt the code to generate a QR with a custom logo in the middle?

Answer

bryan picture bryan · Mar 2, 2015

Just overlay the middle part with the logo. The QR spec isn't going to some version that has a logo in the middle. The logo is just garbage that the error handling of the QR code reader handles. You don't want to make the logo too big, or else it won't be readable because of too many errors.

http://en.wikipedia.org/wiki/QR_code#Error_correction