2011-11-18 12 views
28

शामिल जाँच अगर मैं इस तरह की एक UIImage का दृष्टांत:UIImage, अगर छवि

UIImage *image = [[UIImage alloc] init]; 

वस्तु बनाई गई है, लेकिन यह किसी भी छवि शामिल नहीं है।

मैं कैसे देख सकता हूं कि मेरे ऑब्जेक्ट में कोई छवि है या नहीं?

उत्तर

64

आप जांच सकते हैं कि इसमें कोई छवि डेटा है या नहीं। wheather यह शून्य मान के साथ ही CGImageRef साथ

UIImage* image = [[UIImage alloc] init]; 

CGImageRef cgref = [image CGImage]; 
CIImage *cim = [image CIImage]; 

if (cim == nil && cgref == NULL) 
{ 
    NSLog(@"no underlying data"); 
} 
[image release]; 
+0

आपको बहुत धन्यवाद, यह पूरी तरह से काम है! – Jonathan

+0

लेकिन [छवि सीआईएममेज]; केवल आईओएस 5 में उपलब्ध हैं। 4.3 के बारे में क्या? –

+4

सीआईएम रिटर्न के रूप में काम नहीं कर रहा है – hii

0

चेक का मतलब UIImage आपत्ति छवि नहीं होता है .......

8

cgImage या ciImage के लिए चेक, स्विफ्ट में 3

public extension UIImage { 

    public var hasContent: Bool { 
    return cgImage != nil || ciImage != nil 
    } 
} 

CGImage: If the UIImage object was initialized using a CIImage object, the value of the property is NULL.

CIImage: If the UIImage object was initialized using a CGImageRef, the value of the property is nil.

+0

क्या आप कृपया स्विफ्ट 3 –

+0

@ अनकिटक कुमार गप्ता के लिए अपडेट दे सकते हैं – onmyway133

0

यह @ क्रिरी का अद्यतन संस्करण है, मैंने एक विधि और निश्चित तर्क त्रुटि में डाल दिया है:

- (BOOL)containsImage:(UIImage*)image { 
    BOOL result = NO; 

    CGImageRef cgref = [image CGImage]; 
    CIImage *cim = [image CIImage]; 

    if (cim != nil || cgref != NULL) { // contains image 
     result = YES; 
    } 

    return result; 
} 

एक यूआईएममेज केवल CGImageRef या CIImage पर आधारित हो सकता है। अगर दोनों शून्य हैं तो कोई छवि नहीं है। विधि देने का उदाहरण:

if (![self containsImage:imageview.image]) { 
    [self setImageWithYourMethod]; 
} 

उम्मीद है कि यह किसी की मदद करेगा।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^