2009-07-03 8 views

Odpowiedz

46

NSImage to abstrakcyjny typ danych, który może reprezentować wiele różnych typów obrazów, a także wiele reprezentacji obrazu. Często jest to przydatne, gdy rzeczywisty typ obrazu nie jest ważny dla tego, co próbujesz zrobić. Jest to również jedyna klasa obrazów, którą AppKit zaakceptuje w swoich interfejsach API (NSImageView i tak dalej).

CGImage może reprezentować tylko bitmapy. Jeśli chcesz uzyskać brudne dane mapy bitowej, CGImage jest odpowiednim typem do użycia. Operacje w CoreGraphics, takie jak tryby mieszania i maskowanie, wymagają CGImageRefs. CGImageRefs można użyć do utworzenia NSBitmapImageRefs, które można następnie dodać do NSImage.

myślę dokumentacja opisuje CIImage najlepiej:

Chociaż obiekt CIImage ma danych obrazu z nim związane, to nie jest obraz. Możesz myśleć o obiekcie CIImage jako "recepturze" obrazu. Obiekt CIImage zawiera wszystkie informacje niezbędne do utworzenia obrazu, ale Core Image nie renderuje obrazu, dopóki nie zostanie o tym poproszony. Ta metoda "leniwej oceny" pozwala Core Image działać tak wydajnie, jak to tylko możliwe.

CIImages jesteś typem wymagane do korzystania z różnych GPU zoptymalizowane Rdzeń filtry obrazu, które pochodzą z systemu Mac OS X, ale, jak CGImageRefs, mogą też być konwertowane do NSBitmapImageReps.