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

Objective c 目标C:检查UIImage是否填充了单一颜色,objective-c,image,Objective C,Image,有没有办法检查UIImage是否包含单一颜色?我有一个将文本渲染到图像的应用程序,如果返回的图像是完全白色的,我不想重新绘制屏幕 有没有办法做到这一点 问候,, EZFrag像这样的东西可能会奏效 - (BOOL)imageIsWhite:(UIImage *)img { CGImageRef imageRef = img.CGImage; NSData *data = (NSData *) CGDataProviderCopyData(CGImageGetDataProvider(im

有没有办法检查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;
}
-(BOOL)图像为白色:(UIImage*)img{
CGImageRef imageRef=img.CGImage;
NSData*数据=(NSData*)CGDataProviderCopyData(CGImageGetDataProvider(imageRef));
无符号字符*像素=(无符号字符*)[数据字节];
BOOL isWhite=是;
对于(int i=0;i<[数据长度];i+=4){
if(!(像素[i]==像素[i+1]==像素[i+2]==255)){
isWhite=否;
打破
}
}
返回为白色;
}

还有其他解决方案吗。嗯,如果你像这样检查每一个像素,它是非常昂贵的