Swift3 生成二维码

前端之家收集整理的这篇文章主要介绍了Swift3 生成二维码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
import UIKit

public extension UIImage {
    
    public class func createQRCode(code: String,width: CGFloat,height: CGFloat) -> UIImage? {
        let data = code.data(using: String.Encoding.isoLatin1,allowLossyConversion: false)
        if let filter = CIFilter(name: "CIQRCodeGenerator") {
            filter.setValue(data,forKey: "inputMessage")
            filter.setValue("H",forKey: "inputCorrectionLevel")
//            inputCorrectionLevel 是一个单字母(@"L",@"M",@"Q",@"H" 中的一个),表示不同级别的容错率,默认为 @"M"
//            错误修正容量 L水平 7%的字码可被修正
//            M水平 15%的字码可被修正
//            Q水平 25%的字码可被修正
//            H水平 30%的字码可被修正
//            所以很多二维码的中间都有头像之类的图片但仍然可以识别出来就是这个原因
            if let QRCodeImage = filter.outputImage {
                //消除模糊
                let scaleX = width/QRCodeImage.extent.size.width
                let scaleY = height/QRCodeImage.extent.size.height
                let transformedImage = QRCodeImage.applying(CGAffineTransform.init(scaleX: scaleX,y: scaleY))
                
                return UIImage(ciImage: transformedImage)
            } else {
                return nil
            }
        }else {
            return nil
        }
    }
}
进阶,创建彩色二维码 原文链接:https://www.f2er.com/swift/322604.html

猜你在找的Swift相关文章