2012-07-25 147 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