使用 UIGraphicsGetImageFromCurrentImageContext 获取图像
Posted
技术标签:
【中文标题】使用 UIGraphicsGetImageFromCurrentImageContext 获取图像【英文标题】:Getting image using UIGraphicsGetImageFromCurrentImageContext 【发布时间】:2012-07-25 11:19:25 【问题描述】:我试图理解 UIgraphicsGetImageContext() 函数,根据我的理解,它是一个函数,它从当前位图上下文中获取图像,所以每当我在画布上绘制一些东西并调用这个函数时,我都会得到绘制的图像,但假设我不画任何东西,那么它也会提取一个空图像。所以我想了解,我们如何检查 canvas(CGContext) 何时为 nil。
下面是我尝试过的代码,但它不起作用
UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO,0.0);
[self.layer renderInContext:UIGraphicsGetCurrentContext()];
if(UIGraphicsGetCurrentContext() == nil)
NSLog(@"NIL");
else
m_curImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSLog(@"%@",m_curImage);
所以朋友们,请告诉我如何获得它,这将对我有帮助
问候 兰吉特
【问题讨论】:
对不起,我知道它太老了,但你找到答案了吗? 【参考方案1】:UIGraphicsGetCurrentContext()
只会在图形上下文堆栈为空时返回 nil。在您的绘图代码中,您将始终有一个绘图上下文,因此它不会在这里返回 nil。 UIGraphicsBeginImageContextWithOptions
将新的上下文压入堆栈。
您不能使用UIGraphicsGetCurrentContext()
来检测您是否在上下文中绘制了某些东西。
【讨论】:
您无法真正检查是否绘制了某些东西(它可能被绘制为透明或超出图像边界,或者绘图太小以至于在图像中不可见),您只能检查如果生成的图像包含至少一个不完全透明的像素。 哦是吗?那么@phix23,我们如何检查呢?我对此一无所知 你不应该这样做,重新考虑你的问题并重新设计你的代码 嗨@phix23 我不明白,如果我不画任何东西,我也会得到一个空的图像。 是的,当然,UIGraphicsBeginImageContextWithOptions 总是创建一个即使是空的也会占用空间的图像以上是关于使用 UIGraphicsGetImageFromCurrentImageContext 获取图像的主要内容,如果未能解决你的问题,请参考以下文章
在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?
Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)