【发布时间】:2010-11-02 19:38:13
【问题描述】:
我想知道最有效的方法是制作一个包含图像的 CALayer。
我知道你可以加载 UIImage 然后调用 [image CGImage] 但这是最好的方法吗?据我从 Apple 的文档中可以看出,这是您可以做到的唯一方法。
【问题讨论】:
标签: iphone uiimage calayer cgimage
我想知道最有效的方法是制作一个包含图像的 CALayer。
我知道你可以加载 UIImage 然后调用 [image CGImage] 但这是最好的方法吗?据我从 Apple 的文档中可以看出,这是您可以做到的唯一方法。
【问题讨论】:
标签: iphone uiimage calayer cgimage
试试这个:
layer.contents = (__bridge id)[ uiimage CGImage ] ;
HTH
【讨论】:
好吧,CGImage 不是 CALayer,所以您显然会留下一些步骤,但我假设您知道您在说什么,就绘制到 CALayer 或诸如此类而言.
如果您的问题是关于在不使用 UIImage 的情况下创建 CGImages,您可以尝试查看以下函数:
如果您碰巧事先知道它是什么类型的图像,只需使用适当的方法即可。否则,您需要查看文件签名以查看它是否包含 PNG 或 JFIF。当然,这需要你实现一个CGDataProvider。
我认为这正是UIImage 类已经在做的事情。如果你想从中挤出一点效率,你可以在UIImage类中使用以下方法之一:
+ (UIImage *)imageWithContentsOfFile:(NSString *)path
+ (UIImage *)imageWithData:(NSData *)data
这些方法的唯一区别和
+ (UIImage *)imageNamed:(NSString *)name
是imageNamed: 缓存图像。如果您使用第一种方法,它不会。
【讨论】: