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



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

有办法做到这一点吗?

问候,EZFrag

这样做可能会奏效

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

最新更新