美文网首页iOS Developer
iOS 创建二维码(Swift3.0)

iOS 创建二维码(Swift3.0)

作者: 捡书 | 来源:发表于2016-12-19 11:35 被阅读0次
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  
        }  
    }  
}

相关文章

网友评论

    本文标题:iOS 创建二维码(Swift3.0)

    本文链接:https://www.haomeiwen.com/subject/zhctvttx.html