OS X: сравнение двух изображений

Я пытаюсь реализовать способ сравнения двух изображений, но я тестирую и сравниваю одно и то же изображение, чтобы убедиться, что оно работает, но не работает. вот может код:

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

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

Если никогда не бывает правдой. Кто-нибудь из вас знает, что я делаю неправильно или есть ли другой способ сравнить изображения?

Я буду очень признателен за вашу помощь.


person user2924482    schedule 02.12.2015    source источник
comment
if ([imgDataOne isEqual:imgDataTwo])? Вы сравниваете указатели.   -  person Larme    schedule 02.12.2015
comment
Не могли бы вы хешировать каждое изображение?   -  person bhzag    schedule 02.12.2015
comment
@Larme с использованием isEqual или isEqualToData работает. Спасибо!   -  person user2924482    schedule 02.12.2015


Ответы (1)


TIFFRepresentation вернет новый объект NSData. Сравнение этих объектов с помощью оператора == всегда будет возвращать false, поскольку это два разных объекта.

NSData имеет метод isEqualToData для проверки, содержат ли эти два объекта NSData одни и те же двоичные данные.

person danielv    schedule 02.12.2015