Vâng, một CGImage
không phải là một CALayer
, vì vậy rõ ràng là bạn đang để lại một số bước ra khỏi đó, nhưng tôi giả sử bạn biết những gì bạn đang nói đến, như xa như sắp kết CALayer
hay có điều gì.
Nếu câu hỏi của bạn là về việc tạo CGImage
s mà không sử dụng một UIImage, bạn có thể thử nhìn vào các chức năng sau:
- CGImageCreateWithJPEGDataProvider
- CGImageCreateWithPNGDataProvider
Nếu bạn tình cờ biết trước những gì loại hình ảnh đó, chỉ cần sử dụng phương pháp thích hợp. Nếu không, bạn cần phải nhìn vào chữ ký tập tin để xem nó có chứa PNG hay JFIF hay không. Tất nhiên, điều này yêu cầu bạn triển khai CGDataProvider
.
Tôi cho rằng đây chính là điều mà lớp UIImage
đang thực hiện. Nếu bạn muốn ép ra mỗi bit hiệu quả từ đó, bạn có thể sử dụng một trong những phương pháp sau đây trong lớp UIImage
:
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
+ (UIImage *)imageWithData:(NSData *)data
Sự khác biệt duy nhất giữa những phương pháp và
+ (UIImage *)imageNamed:(NSString *)name
là imageNamed:
lưu trữ hình ảnh. Nếu bạn sử dụng một trong những phương pháp đầu tiên, nó không.
Nguồn
2009-06-14 16:30:30
Cảm ơn vì điều đó. CGImageCreateWithJPEGDataProvider và CGImageCreateWithPNGDataProvider chính xác là những gì tôi đang tìm kiếm. –