我找到了一个样本QR生成器代码,它可以完美地生成QR码图像,但使用Apple的Api将图像转换为jpeg或png数据总是失败(我的意思是零),我该怎么办?

class QRGenerator {
    static var filter = CIFilter(name: "CIQRCodeGenerator")
    static func generateCode(_ string: String, foregroundColor: UIColor = .black, backgroundColor: UIColor = .white) -> UIImage? {
        guard let filter = filter,
            let data = string.data(using: .isoLatin1, allowLossyConversion: false) else {
                return nil
        }

        filter.setValue(data, forKey: "inputMessage")

        guard let ciImage = filter.outputImage else {
            return nil
        }

        let transformed = ciImage.transformed(by: CGAffineTransform.init(scaleX: 10, y: 10))
        let invertFilter = CIFilter(name: "CIColorInvert")
        invertFilter?.setValue(transformed, forKey: kCIInputImageKey)

        let alphaFilter = CIFilter(name: "CIMaskToAlpha")
        alphaFilter?.setValue(invertFilter?.outputImage, forKey: kCIInputImageKey)

        if let outputImage = alphaFilter?.outputImage  {
            return UIImage(ciImage: outputImage, scale: 2.0, orientation: .up)
                .withRenderingMode(.alwaysTemplate)
        }
        return nil
    }
}


let image = self.qrIV.image!



if let imageData = image.jpegData(compressionQuality: 1), let thumbData = image.aspectRatioResize(to: CGSize(width: 20, height: 20))?.jpegData(compressionQuality: 0.7) {
       printLog("something")

}
else if let imageData = image.pngData(), let thumbData = image.pngData() {
       printLog("something")
}