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
        }
    }
}
进阶,创建彩色二维码

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...