Цель C: проверить, заполнен ли UIImage одним цветом - PullRequest
3 голосов
/ 13 декабря 2011

Есть ли способ проверить, содержит ли UIImage один цвет? У меня есть приложение, которое отображает текст на изображение, и если возвращаемое изображение полностью белое, я не хочу перерисовывать экран.

Есть ли способ достичь этого?

С уважением, EZFrag

1 Ответ

8 голосов
/ 13 декабря 2011

Нечто подобное может сработать

- (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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...