2009-07-03 27 views

cevap

46

NSImage, birçok farklı resim türünü ve bir görüntünün birden fazla temsilini temsil edebilen soyut bir veri türüdür. Gerçek görüntü türü yapmaya çalıştığınız şey için önemli olmadığında genellikle yararlıdır. Ayrıca AppKit'in kendi API'larında kabul edeceği tek görüntü sınıfıdır (NSImageView vb.).

CGImage yalnızca bitmapleri temsil edebilir. Gerçek bitmap verileriyle aşağı ve kirli olmanız gerekiyorsa, CGImage kullanmak için uygun bir türüdür. Karışım modları ve maskeleme gibi CoreGraphics'teki işlemler CGImageRefs gerektirir. CGImageRefs, daha sonra bir NSImage'a eklenebilen NSBitmapImageRefs oluşturmak için kullanılabilir.

Ben belgelerine iyi bir CIImage anlatır düşünüyorum: Bir CIImage nesnesi kendisiyle ilişkilendirilmiş görüntü verilerine sahip

rağmen, bir resim değil. Bir CIImage nesnesini bir resim "tarifi" olarak düşünebilirsiniz. Bir CIImage nesnesi bir görüntü üretmek için gerekli tüm bilgilere sahiptir, ancak Çekirdek Resim aslında bunu yapana kadar bir görüntü oluşturmaz. Bu “tembel değerlendirme” yöntemi, Core Image'ın olabildiğince verimli çalışmasını sağlar.

CIImages CGImageRefs gibi, onlar da NSBitmapImageReps dönüştürülebilir, Mac OS X ile birlikte gelen çeşitli GPU optimize Çekirdek Görüntü filtreleri kullanmak için gerekli tip vardır, ama.