This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension UIImage { | |
var noiseReducted: UIImage? { | |
guard let openGLContext = EAGLContext(api: .openGLES2) else { return self } | |
let ciContext = CIContext(eaglContext: openGLContext) | |
guard let noiseReduction = CIFilter(name: "CINoiseReduction") else { return self } | |
noiseReduction.setValue(CIImage(image: self), forKey: kCIInputImageKey) | |
noiseReduction.setValue(0.02, forKey: "inputNoiseLevel") | |
noiseReduction.setValue(0.40, forKey: "inputSharpness") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension UIImage { | |
var grayscaled: UIImage? { | |
guard let openGLContext = EAGLContext(api: .openGLES2) else { return self } | |
let ciContext = CIContext(eaglContext: openGLContext) | |
guard let currentFilter = CIFilter(name: "CIPhotoEffectNoir") else { return self } | |
currentFilter.setValue(CIImage(image: self), forKey: kCIInputImageKey) | |
if let output = currentFilter.outputImage, | |
let cgImage = ciContext.createCGImage(output, from: output.extent) { | |
return UIImage(cgImage: cgImage, scale: scale, orientation: imageOrientation) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
extension UIView { | |
var asImage: UIImage? { | |
UIGraphicsBeginImageContextWithOptions( | |
CGSize(width: self.frame.width, height: self.frame.height), true, 1) | |
self.layer.render(in: UIGraphicsGetCurrentContext()!) | |
guard let image = UIGraphicsGetImageFromCurrentImageContext() else { return nil } | |
UIGraphicsEndImageContext() | |
return image | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
final class SortRule: Object { | |
@objc dynamic var keyRaw: String = "" | |
@objc dynamic var typeRaw: String = "" | |
var key: SortKey { | |
if let key = SortKey.fromRaw(keyRaw) { | |
return key | |
} | |
return .name |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Only for Int raw values | |
class Thread: Object { | |
@objc dynamic var state: State = .ready | |
} | |
@objc enum State: Int { | |
case ready | |
case running | |
case waiting | |
} |
NewerOlder