Post

Replies

Boosts

Views

Activity

Reply to QR Code Generator (CIFilter) colours for light/dark mode ?
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 !
Topic: Media Technologies SubTopic: General Tags:
Mar ’22
Reply to QR Code Generator (CIFilter) colours for light/dark mode ?
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 !
Topic: Media Technologies SubTopic: General Tags:
Replies
Boosts
Views
Activity
Mar ’22