首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIGraphicsBeginImageContext与iOS上的CGBitmapContextCreate

UIGraphicsBeginImageContext与iOS上的CGBitmapContextCreate
EN

Stack Overflow用户
提问于 2010-12-15 23:46:13
回答 1查看 7.8K关注 0票数 14

这可能是一个非常愚蠢的问题,但是有人能告诉我使用UIGraphicsBeginImageContext创建CGContextRef和使用CGBitmapContextCreate绘制图像有什么区别吗?特别是现在,由于UIKit绘图是线程安全的,我想知道是否有任何理由使用CGBitmapContextCreate而不是UIGraphicsBeginImageContext。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-16 01:46:20

根据苹果的UIKit Function Reference,它带有2010年11月15日的封面日期,UIGraphicsBeginImageContext和相关函数仍然应该只在主线程上调用。在最新的Xcode 3.2.5附带的开发人员文档中重复了相同的文本。然而,它对UIGraphicsGetCurrentContext报告了同样的情况,我现在明确地认为它是线程安全的。我的理解是,现在只有UIGraphicsGetCurrentContext和UIImage、UIColor和UIFont类是线程安全的,而不是整个UIKit,但我找不到明确的参考。

无论如何,UIGraphicsBeginImageContext是一个UIKit包装器,它位于CGBitmapContextCreate之上,减少了它的功能。特别是,您只能使用具有固定分量顺序的RGBA色空间图像(尽管它因iOS版本而异),并且不能为绘制指定自己的目标缓冲区。因此,例如,做一堆CoreGraphics合成,然后将结果发布到OpenGL是无用的,并且对于将已经以某种数组形式获得的图形传输到CoreGraphics中也没有帮助。

但是,如果UIKit方法支持所需的功能并且可以安全地使用,则CoreGraphics方法没有固有的优势。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4451855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档