加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift3 生成二维码

发布时间:2020-12-14 06:36:13 所属栏目:百科 来源:网络整理
导读:import UIKitpublic 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(nam
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
        }
    }
}
进阶,创建彩色二维码

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读