我正在更新现有的应用程序以支持iOS 12并CIFilter出现奇怪的问题.
这是一个简单的类,有一个功能generate():
class QRGenerator {
static func generate(from string: String) -> UIImage? {
let context = CIContext()
let data = string.data(using: String.Encoding.ascii)
if let filter = CIFilter(name: "CIQRCodeGenerator") {
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 7, y: 7)
if let output = filter.outputImage?.transformed(by: transform), let cgImage = context.createCGImage(output, from: output.extent) {
return UIImage(cgImage: cgImage)
}
}
return nil
}
}
Run Code Online (Sandbox Code Playgroud)
这个类完美地工作到iOS 12.现在排队if let filter = CIFilter(name: "CIQRCodeGenerator")我总是收到零.
我花了一些时间在Apple文档上,但没有找到有关此问题的任何有用信息.
我对 知之甚少CIFilters,但也许您可以尝试获取所有可能的过滤器名称:
let allFiltersNames = CIFilter.filterNames(inCategories: nil)
Run Code Online (Sandbox Code Playgroud)
我找不到匹配的过滤器CIQRCodeGenerator,但可能有其他名称不同的过滤器可以满足您的需求。
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |