UIImage,检查是否包含图像

时间:2011-11-18 09:20:23

标签: ios uiimage

如果我像这样实例化UIImage:

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

创建了对象,但它不包含任何图像。

如何查看我的对象是否包含图片?

4 个答案:

答案 0 :(得分:67)

您可以检查它是否有任何图像数据。

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

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

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

答案 1 :(得分:10)

在Swift 3中检查1) Load .doc file from the file system(or remote server) to the text editor 2) Edit the loaded .doc file and save the file as different name cgImage

ciImage
  

CGImage:如果使用CIImage对象初始化UIImage对象,   该属性的值为NULL。

     

CIImage:如果使用CGImageRef初始化UIImage对象,则   该物业的价值为零。

答案 2 :(得分:0)

用CGImageRef检查它本身是否包含空值意味着UIImage对象不包含图像.......

答案 3 :(得分:0)

这是@Kreiri的更新版本,我输入了一个方法并修复了逻辑错误:

- (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;
}

UIImage只能基于CGImageRef或CIImage。如果两者都是零意味着没有图像。给出方法的使用示例:

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

希望它会帮助别人。