Thanks for the code.
I had to modify the imageAsset?.register check to the following as I could not use @Environment(.colorScheme) because the Struct was not a View, as in other part of the my code, which was in SwiftUI:
var osTheme: UIUserInterfaceStyle { return UIScreen.main.traitCollection.userInterfaceStyle }
qrImage = osTheme == .light ? lightImage : darkImage
But otherwise it worked. The code that I found in the mean time was compiling but didn't work, it was a SO example using the "CIFalseColor" filter:
var qrImage = UIImage(systemName: "xmark.circle") ?? UIImage()
let data = Data(text.utf8)
let filter = CIFilter.qrCodeGenerator()
filter.setValue(data, forKey: "inputMessage")
let transform = CGAffineTransform(scaleX: 2, y: 2)
if let outputImage = filter.outputImage?.transformed(by: transform) {
if let image = context.createCGImage(
outputImage,
from: outputImage.extent) {
qrImage = UIImage(cgImage: image)
let colorParameters = [
"inputColor0": CIColor(color: UIColor.black), // Foreground
"inputColor1": CIColor(color: UIColor.green) // Background]
let colored = outputImage.applyingFilter("CIFalseColor", parameters: colorParameters)
qrImage = UIImage(ciImage: colored)
}
}
return qrImage
Anyway, it does work now.
Many thanks !