检测 UIImage 是不是不包含图像
Posted
技术标签:
【中文标题】检测 UIImage 是不是不包含图像【英文标题】:Detect if UIImage not contain an image检测 UIImage 是否不包含图像 【发布时间】:2015-12-23 07:55:16 【问题描述】:我正在尝试检测某些 UIImage 是否为空或包含图像。
所有的 UIImages 都有一个实例,所以我不能问是否image == nil
。
我也试过这段代码:
CGImageRef cgref = [image CGImage];
CIImage *cim = [image CIImage];
if (cim == nil && cgref == NULL)
NSLog(@"no underlying data");
但它不适合我。 我还尝试将图像转换为 NSData 并检查字节的大小,但“空”图像大小接近正常大小。
顺便说一句 - 所有 UIImage 的大小都相同(宽度和高度)。
还有其他想法吗?
VS
【问题讨论】:
你检查过图片的大小和高度,如果两者都是0和0则没有图片 check this 是的,我试过了。所有图像的宽度和高度都相同。 检查使用 [Image isKindOfClass:[UIImage class]] 它始终是 UIImage,正如您在添加的图片中看到的那样。 【参考方案1】:- (NSString *)contentTypeForImageData:(NSData *)data
uint8_t c;
[data getBytes:&c length:1];
switch (c)
case 0xFF:
return @"image/jpeg";
case 0x89:
return @"image/png";
case 0x47:
return @"image/gif";
case 0x49:
case 0x4D:
return @"image/tiff";
return nil;
并将您的图像转换为 nsdata 并进行测试:
NSData *imageData = //convert your image to NSData
if([self contentTypeForImageData:imageData] == nil)
NSLog(@"no underlying imageView");
else
NSLog(@"underlying imageView");
希望对你有帮助。
【讨论】:
它看起来不错,但对我不起作用 :) 您的代码的所有结果都是相同的(有和没有图像)。【参考方案2】:尝试使用CGImageGetAlphaInfo()
并检查值是否为kCGImageAlphaOnly
其实,这只是一个想法。目前我无法自行检查。
【讨论】:
以上是关于检测 UIImage 是不是不包含图像的主要内容,如果未能解决你的问题,请参考以下文章
Swift/Xcode6:PDF 图像是不是与 UIImage(named:) 一起使用?