На игровой площадке Swift я загружаю JPEG, конвертирую его в UIImage и фильтрую в монохромный. Затем я конвертирую полученное отфильтрованное изображение в UIImage.
Входные и отфильтрованные изображения отображаются правильно.
Затем я конвертирую оба изображения в тип CGImage. Это работает для входного изображения, но отфильтрованное изображение после преобразования возвращает ноль:
// Get an input image
let imageFilename = "yosemite.jpg"
let inputImage = UIImage(named: imageFilename )
let inputCIImage = CIImage(image:inputImage!)
// Filter the input image - make it monochrome
let filter = CIFilter(name: "CIPhotoEffectMono")
filter!.setDefaults()
filter!.setValue(inputCIImage, forKey: kCIInputImageKey)
let CIout = filter!.outputImage
let filteredImage = UIImage(CIImage: CIout!)
// Convert the input image to a CGImage
let inputCGImageRef = inputImage!.CGImage // Result: <CGImage 0x7fdd095023d0>
// THE LINE ABOVE WORKS
// Try to convert the filtered image to a CGImage
let filteredCGImageRef = filteredImage.CGImage // Result: nil
// THE LINE ABOVE DOES NOT WORK
// Note that the compiler objects to 'filteredImage!.CGImage'
Что случилось?