この関数を使用して、写真に特定の色のピクセルが含まれているかどうかを確認します。
- (BOOL)imageHasOrange:(UIImage *)img
{
CGImageRef imageRef = img.CGImage;
NSData *data = (__bridge NSData *) CGDataProviderCopyData(CGImageGetDataProvider(imageRef));
unsigned char *pixels = (unsigned char *)[data bytes];
BOOL hasColor = NO;
for(int i = 0; i < [data length]; i += 4)
{
if(pixels[i] == 255 && pixels[i+1] == 132 && pixels[i+2] == 0)
{
hasColor = YES;
break;
}
}
CFRelease(imageRef);
return hasColor;
}
Instrumentsを使用してメモリリークを追跡すると、CGDataProviderCopyData関数に関連していると言われました。
しかし、私はARCを使用しているので、「データ」配列を解放する必要はありませんか?