//MARK:- 生成二维码
private func creatQRCodeImage(text: String, WH: CGFloat) -> UIImage{
//创建滤镜
let filter = CIFilter(name: "CIQRCodeGenerator")
//还原滤镜的默认属性
filter?.setDefaults()
//设置需要生成二维码的数据
filter?.setValue(text.data(using: String.Encoding.utf8), forKey: "inputMessage")
//从滤镜中取出生成的图片
let ciImage = filter?.outputImage
//这个清晰度好
let bgImage = createNonInterpolatedUIImageFormCIImage(image: ciImage!, size: WH)
return bgImage
}
private func createNonInterpolatedUIImageFormCIImage(image: CIImage, size: CGFloat) -> UIImage {
let extent: CGRect = image.extent.integral
let scale: CGFloat = min(size/extent.width, size/extent.height)
let width = extent.width * scale
let height = extent.height * scale
let cs: CGColorSpace = CGColorSpaceCreateDeviceGray()
let bitmapRef = CGContext(data: nil, width: Int(width), height: Int(height), bitsPerComponent: 8, bytesPerRow: 0, space: cs, bitmapInfo: 0)!
let context = CIContext(options: nil)
let bitmapImage: CGImage = context.createCGImage(image, from: extent)!
bitmapRef.interpolationQuality = CGInterpolationQuality.none
bitmapRef.scaleBy(x: scale, y: scale)
bitmapRef.draw(bitmapImage, in: extent)
let scaledImage: CGImage = bitmapRef.makeImage()!
return UIImage(cgImage: scaledImage)
}
生成二维码
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- github 下载地址: https://github.com/ZenKingLen/KLAboutQRCodeDemo
- 写在前面:这篇文章暂分四部分来介绍原生二维码扫描。 苹果原生二维码的功能确实很强大,扫描速度快,不需要对项目进行配...
- 参考:https://blog.csdn.net/zhuswy/article/details/80267748 ...