ios – 如何生成与Snapchat的Snapcode类似的图像,将以相同的方式使用?

前端之家收集整理的这篇文章主要介绍了ios – 如何生成与Snapchat的Snapcode类似的图像,将以相同的方式使用?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个使用QR码连接用户的应用程序,类似于Snapchat允许用户在Snapchat上添加对方的应用程序.

我希望使用更加美观的替代QR码,与Snapchat的Snapcode类似.关于如何在iOS应用程序中完成任何想法?

解决方法

如果您不想使用QRCode,您将不得不创建自己的模式来生成/读取图像.

但也许你可以使用QRCode.

QRCode有一个error correction level.考虑到它,你仍然可以使你的QRCode更美观,如你所要求的.只要记住“错误更正级别越高,存储容量越小”,只要算法能够获得所需的信息,您就可以自定义图像.

当您生成QRCode图像时,您可以这样做:

private enum InputCorrectionLevel: String {
    case Low = "L",Medium = "M",High = "Q",Ultra = "H"
}

func generateQRCodeFromString(string:String,withFrameSize frameSize:CGSize) -> CIImage? {
    var qrCodeCIImage: CIImage?
    let data = string.dataUsingEncoding(NSISOLatin1StringEncoding,allowLossyConversion: false)

    if let filter = CIFilter(name: "CIQRCodeGenerator") {
        filter.setValue(data,forKey: "inputMessage")
        filter.setValue(InputCorrectionLevel.Low.rawValue,forKey: "inputCorrectionLevel")

        if let outputImage = filter.outputImage {
            let scaleX = frameSize.width / outputImage.extent.size.width
            let scaleY = frameSize.height / outputImage.extent.size.height
            qrCodeCIImage = outputImage.imageByApplyingTransform(CGAffineTransformMakeScale(scaleX,scaleY))
        } else {
            print("Error getting output image")
        }
    } else {
        print("Error creating filter")
    }

    return qrCodeCIImage
}

猜你在找的iOS相关文章