Cóż, CGImage
nie jest CALayer
, więc są oczywiście pozostawiając pewne kroki tam, ale zakładam, że wiesz co mówisz, jeśli chodzi o rysunek do CALayer
lub etażerka.
Jeśli pytanie o stworzenie CGImage
s bez używania UIImage, można spróbować patrząc na następujące funkcje:
- CGImageCreateWithJPEGDataProvider
- CGImageCreateWithPNGDataProvider
Jeśli zdarzy się wiedzieć wcześniej co rodzaj obrazu, po prostu użyj odpowiedniej metody. W przeciwnym razie musisz sprawdzić podpis pliku, aby zobaczyć, czy zawiera on PNG lub JFIF. Oczywiście wymaga to wdrożenia CGDataProvider
.
Zakładam, że właśnie to robi klasa UIImage
. Jeśli chcesz, aby wycisnąć co nieco sprawność z tym, można użyć jednej z następujących metod w klasie UIImage
:
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
+ (UIImage *)imageWithData:(NSData *)data
Jedyna różnica między tymi metodami i
+ (UIImage *)imageNamed:(NSString *)name
że imageNamed:
buforuje obraz. Jeśli używasz jednej z pierwszych metod, nie działa.
Dzięki za to. CGImageCreateWithJPEGDataProvider i CGImageCreateWithPNGDataProvider były dokładnie tym, czego szukałem. –