Что ж, CGImage
- это не CALayer
, так что вы, очевидно, оставляете некоторые шаги там, но я предполагаю, что вы знаете, о чем говорите, вплоть до рисования на CALayer
или еще чего .
Если ваш вопрос касается создания CGImage
s без использования UIImage, вы можете попробовать поискать следующие функции:
- CGImageCreateWithJPEGDataProvider
- CGImageCreateWithPNGDataProvider
Если вам заранее известно, что это за изображение, просто используйте соответствующий метод. В противном случае вам нужно будет посмотреть на подпись файла, чтобы увидеть, содержит ли он PNG или JFIF. Конечно, это требует от вас реализации CGDataProvider
.
Полагаю, это именно то, что класс UIImage
уже делает. Если вы хотите выжать из этого каждый бит эффективности, вы можете использовать один из следующих методов в классе UIImage
:
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
+ (UIImage *)imageWithData:(NSData *)data
Единственная разница между этими методами и
+ (UIImage *)imageNamed:(NSString *)name
означает, что imageNamed:
кэширует изображение. Если вы используете один из первых методов, это не так.