条形码生成后无法保存到相册 code 3303解决方法

3,118 阅读1分钟

swift 生成条形码后 无法将生成的条形码保存到相册中时保存出错, 控制台输出错误信息

Error Domain=PHPhotosErrorDomain Code=3303 "(null)"

生成的条形码图形代码如下

func generateBarcode(from string: String) -> UIImage? {
        let data = string.data(using: String.Encoding.ascii)

        if let filter = CIFilter(name: "CICode128BarcodeGenerator") {
            filter.setValue(data, forKey: "inputMessage")
            let transform = CGAffineTransform(scaleX: 3, y: 3)

            if let output = filter.outputImage?.transformed(by: transform) {
                return  UIImage(ciImage: output)
            }
        }

        return nil
    }

查阅了一些资料,并没有找到相关的问题,忽然间想到是不是因为图片的格式问题导致的,于是尝试将返回的 UIImage 重新格式化处理 修改方法如下

return UIImage(ciImage: output) 改为 return UIImage(data: UIImage(ciImage: output).pngData()!)!

发现正常保存。

以上如有理解错误,还请大神在评论区指出。