質問: UIImage(ciImage: filter.outputImage!) self.image.setNeedsDisplay() } ```
回答: とりあえず動くコードを載せておきます。 ``` func setMonoColor() { let sourceImage = self.image.image! let inputImage = CIImage(cgImage: sourceImage.cgImage!) let filter = CIFilter(name: "CIPhotoEffectMono")! filter.setDefaults() filter.setValue(inputImage, forKey: kCIInputImageKey) guard let outputImage = filter.outputImage else { return } let context = CIContext(options: nil) let cgImage = context.createCGImage(outputImage, from: outputImage.extent)! let img = UIImage(cgImage: cgImage, scale: sourceImage.scale, orientation: sourceImage.imageOrientation) self.image.image = img } ``` 理屈は忘れましたが、以前から`UIImage(ciImage:)`は期待通りに動かないので、CIContextを使った変換方法を多くのが人が採用していたと記憶しています。