CIFilter用來創(chuàng)建圖像濾鏡,一般通過kCIInputImageKey提供輸入圖像,通過outputImage得到處理過的圖像。但是也有一些其他用處,例如CIQRCodeGenerator可以生成二維碼。
CIQRCodeGenerator可以有兩個參數(shù)inputMessage和inputCorrectionLevel。
inputMessage: 是一個Data類型的二維碼數(shù)據(jù), inputCorrectionLevel:控制生產(chǎn)二維碼的容錯率
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縮放成合適的大小。