2012-07-25 121 views
1

我想了解,UIgraphicsGetImageContext()函数,从我的理解,它的函数,它从当前位图上下文获取图像,所以当我在画布上绘制的东西,并调用此函数,我得到绘制的图像,但假设我不绘制任何东西,然后它也提取一个空的图像。所以我想明白,我们如何检查canvas(CGContext)是否为零。获取图像使用UIGraphicsGetImageFromCurrentImageContext

下面是我的代码,我试过了,但它不工作

UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO,0.0); 
    [self.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    if(UIGraphicsGetCurrentContext() == nil) 
    { 
     NSLog(@"NIL"); 
    } 
    else 
    { 
     m_curImage = UIGraphicsGetImageFromCurrentImageContext(); 
     UIGraphicsEndImageContext(); 
     NSLog(@"%@",m_curImage);  
    } 

因此,朋友们,请让我知道如何得到这一点,将有助于我

问候 兰吉特

+0

对不起,我知道它太旧了,但你有没有找到答案? – Aziz 2013-09-07 11:18:39

回答

2

UIGraphicsGetCurrentContext()只会在图形上下文堆栈为空时返回nil。在你的绘图代码中,你总是会有一个绘图上下文,所以它不会在这里返回零。 UIGraphicsBeginImageContextWithOptions推动堆栈上的新上下文。

您不能使用UIGraphicsGetCurrentContext()来检测您是否在上下文中绘制了某些东西。

+0

嘿@ phix23感谢您的回复,那么我该如何检查它? – Ranjit 2012-07-25 12:08:35

+0

您无法真正检查是否绘制了某些东西(它可能被绘制为透明或超出图像边界,或者绘图非常小以至于在图像中不可见),您只能检查结果图像是否至少包含一个像素不完全透明。 – Felix 2012-07-25 12:17:31

+0

哦,是吗?那么@ phix23,我们该如何检查?我对此没有任何想法 – Ranjit 2012-07-25 12:22:50