2009-07-03 21 views

Respuesta

46

NSImagema es un tipo de datos abstracto que puede representar muchos tipos diferentes de imágenes, así como múltiples representaciones de una imagen. A menudo es útil cuando el tipo de imagen real no es importante para lo que estás tratando de hacer. También es la única clase de imagen que AppKit aceptará en sus API (NSImageView y demás).

CGImage solo puede representar mapas de bits. Si necesita ensuciarse con los datos del mapa de bits real, CGImage es un tipo apropiado de usar. Las operaciones en CoreGraphics, como modos de fusión y enmascaramiento, requieren CGImageRefs. CGImageRefs se puede usar para crear NSBitmapImageRefs, que luego se puede agregar a un NSImage.

creo que la documentación describe un CIImage mejor:

Aunque un objeto CIImage tiene datos de imágenes asociados a ella, no es una imagen. Puede pensar en un objeto CIImage como una "receta" de imagen. Un objeto CIImage tiene toda la información necesaria para producir una imagen, pero Core Image no representa una imagen hasta que se lo indiquen. Este método de "evaluación diferida" permite que Core Image funcione de la manera más eficiente posible.

CIImages son del tipo necesario para utilizar los distintos filtros Core Image GPU optimizada que vienen con Mac OS X, pero, al igual que CGImageRefs, también pueden ser convertidos en NSBitmapImageReps.

Cuestiones relacionadas