2015-12-02 164 views
1

我试图实现一种方式来比较两个图像,但我测试我的和比较相同的图像,以确保工作,但不工作。这里是可能的代码:OSX:比较两个图像

NSImage *file = [[NSImage alloc] initWithContentsOfFile:path]; 
NSData *imgDataOne = [file TIFFRepresentation]; 
NSData *imgDataTwo = [file TIFFRepresentation]; 

if (imgDataOne == imgDataTwo) 
{ 
    NSLog(@"is the same image"); 
} 

如果从未如此。你们中的任何一个人都知道我做错了什么,或者是否有另一种方式来比较图像?

我真的很感谢你的帮助。

+0

'if([imgDataOne isEqual:imgDataTwo])'?你在比较指针。 – Larme

+0

你可以散列每个图像? – bhzag

+0

@Larme使用isEqual或isEqualToData工作。谢谢! – user2924482

回答

1

TIFFRepresentation将返回一个新的NSData对象。使用==运算符比较这些对象将始终返回false,因为它们是两个不同的对象。

NSData有isEqualToData方法来测试这两个NSData对象是否包含相同的二进制数据。