kpe*_*yua 47
NSImage是一种抽象数据类型,可以表示许多不同类型的图像,以及图像的多个表示.当实际类型的图像对您正在尝试的内容不重要时,它通常很有用.它也是AppKit将在其API(NSImageView等)中接受的唯一图像类.
CGImage只能表示位图.如果您需要了解实际的位图数据,那么CGImage是一种合适的类型.CoreGraphics中的操作(例如混合模式和屏蔽)需要CGImageRefs.CGImageRefs可用于创建NSBitmapImageRefs,然后可以将其添加到NSImage.
我认为文档最好地描述了CIImage:
虽然CIImage对象具有与之关联的图像数据,但它不是图像.您可以将CIImage对象视为图像"食谱".CIImage对象具有生成图像所需的所有信息,但Core Image在被告知这样做之前实际上不会渲染图像.这种"惰性评估"方法允许Core Image尽可能高效地运行.
CIImages是使用Mac OS X附带的各种GPU优化的Core Image过滤器所需的类型,但是,与CGImageRefs一样,它们也可以转换为NSBitmapImageReps.