iOS 生成二维码

CIFilter用来创建图像滤镜,一般通过kCIInputImageKey提供输入图像,通过outputImage得到处理过的图像。但是也有一些其他用处,例如CIQRCodeGenerator可以生成二维码。
CIQRCodeGenerator可以有两个参数inputMessageinputCorrectionLevel
inputMessage: 是一个Data类型的二维码数据, inputCorrectionLevel:控制生产二维码的容错率

inputMessage 官方推荐用isoLatin1编码,但是其实这种编码并不支持中文,实测用utf8是可以的

let string = "I love you"
if let data = string.data(using: .utf8) {
    let parameters:[String:Any] = ["inputMessage":data]
    let filter = CIFilter(name: "CIQRCodeGenerator", withInputParameters: parameters)
    if let outputImage = filter?.outputImage {
        //处理outputImage
    }
}

outputImage是一个CIImage对象,可以通过applying(_ matrix: CGAffineTransform) -> CIImage缩放成合适的大小。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS7之后,可以使用原生的CIFilter创建二维码。 一、生成二维码 首先是二维码的生成,使用CIFilter...
    _悟了个空阅读 567评论 0 1
  • *************************具体方法*************************** ...
    _源计划阅读 2,767评论 2 2
  • 首先先了解一下二维码的容错(例如微信的二维码中间附带头像图片): 二维码都有一定的纠错,就是有部分污损或者破损都没...
    零零贰叁阅读 1,226评论 0 0
  • ZBar 应该没有 生成二维码的功能。正好之前班兽分享过一个生成二维码的功能 拿过来看看。首先添加依赖 然后 im...
    挠叔阅读 295评论 0 1
  • 与娟相识有点戏剧性,就像肥皂剧一样,我舍友追她舍友,最后她们两个不了了之,而我和娟的关系却变得纠缠不清。 ...
    墨书醉阅读 269评论 0 0