我使用这个函数来知道我的图片是否包含某种颜色的像素:
- (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,所以我不需要释放我的“数据”数组,对吗?