在一个Swift playground里,我加载了一个JPEG图片,将其转换成UIImage并将其过滤为单色图像。然后我将生成的过滤后的图像转换回UIImage。
输入和过滤后的图像都可以正确地显示。
随后我将这两个图片都转换成CGImage类型。这个转换对于输入图片是有效的,但对于过滤后的图片,转换返回nil:
输入和过滤后的图像都可以正确地显示。
随后我将这两个图片都转换成CGImage类型。这个转换对于输入图片是有效的,但对于过滤后的图片,转换返回nil:
// 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'
有什么问题吗?