目标C:检查UIImage是否填充了单一颜色

EZF*_*rag 3 image objective-c

有没有办法可以检查UIImage是否包含单一颜色?我有一个应用程序将文本呈现为图像,如果返回的图像是完全白色,我不想重绘屏幕.

有没有办法实现这个目标?

此致,EZFrag

Eug*_*ene 9

像这样的东西可能会成功

- (BOOL)imageIsWhite:(UIImage *)img {
  CGImageRef imageRef = img.CGImage;
  NSData *data = (NSData *) CGDataProviderCopyData(CGImageGetDataProvider(imageRef));
  unsigned char *pixels = (unsigned char *)[data bytes];
  BOOL isWhite = YES;

  for(int i = 0; i < [data length]; i += 4) {
    if (!(pixels[i] == pixels[i+1] == pixels[i+2] == 255)) {
      isWhite = NO;
      break;
    }
  }
  return isWhite;
}
Run Code Online (Sandbox Code Playgroud)