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
縮放成合適的大小。