在开发过程中,可能会碰到需要比较两张图片是否相同的情景。这时,需要分两种情况讨论:
两张图已经加载到resource中
如果两张图片都已经加载到resource中,并且图片名称已知,那么使用[UIImage imageNamed:]方法创建2个UIImage对象,然后用isEqual比较。1
2
3
4
5UIImage *imageA = [UIImage imageNamed:@"ImageA"];
UIImage *imageB = [UIImage imageNamed:@"ImageB"];
if ([imageA isEqual:imageB]) {
NSLog(@"isEqual");
}
两张图片存储在沙盒的某个位置
如果两张图片存储在iOS沙盒的某个位置,没有被加载到resource中,可以通过比较两个UIImage的data是否相同。1
2
3
4
5
6
7UIImage *imageA = [UIImage imageWithContentsOfFile:fileA];
UIImage *imageB = [UIImage imageWithContentsOfFile:fileB];
NSData *dataA = UIImagePNGRepresentation(imageA);
NSData *dataB = UIImagePNGRepresentation(imageB);
if ([dataA isEqual:dataB]) {
NSLog(@"isEqual");
}