2010-09-28 18 views
5

Bir CALayer (katmana birkaç şekil ekledim ama sonuçta tek bir CALayer ekledim) oluşturdum ve bir CGImage'a eklerken çok fazla sorun yaşıyorum. [CALayer renderInContext:ctx] için bazı referanslar buldum, ancak nasıl uygulanacağından emin değilim.CGImage (veya UIImage) bir CALayer

Daha önce bunu yapan oldu mu?

cevap

11

bu deneyin ...

UIGraphicsBeginImageContext(layer.bounds.size); 
[layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
+0

değil evreli önce tüm 'UIGraphics * Context' işlevleri yalnızca (yani ana iş parçacığı olan OS 4.0, filan, lalala ... –

+0

Son docs devlet için onlar herhangi bir işletim sistemi sürümünde iş parçacığı güvenli değildir). "CGBitmapContextCreate", "UIGraphicsBeginImageContext" öğesinin üzerinde yerleşik olan thread-core CoreGraphics işlevidir. – rpetrich

+0

Ayrıca dokümanlar: Tartışma Bu işlevi yalnızca bitmap tabanlı bir grafik içeriği geçerli grafik bağlamı olduğunda çağırmalısınız. Geçerli içerik sıfırlanırsa veya UIGraphicsBeginImageContext çağrısıyla oluşturulmamışsa, bu işlev sıfırlanır. – TomH

1

Bir bitmap grafik bağlamı oluşturun ve katmanı çizmek için renderInContext: kullanın. Artık bir görüntüde katman var.