我正在开发一款名为IOS的重复图像查找器的应用程序。 我的问题是如何比较图像数组以找到重复。 假设我有图像数组,我想从这个数组中找到重复的图像。 我怎么能找到它?有什么建议。 我使用的方法是将图像转换为数据,并将图像的数据相互比较,在模拟器中完美运行但在设备中无法正常工作。
for (int i=0; i<arrImageData1.count; i++)
{
for (int j=i+1; j<arrImageData1.count; j++)
{
if ([[arrImageData1 objectAtIndex:i] length]==[[arrImageData2 objectAtIndex:j]length])
{
NSNumber *iValue = [NSNumber numberWithInt:i];
NSNumber *jValue = [NSNumber numberWithInt:j];
[arr addObject:iValue];
[arr addObject:jValue];
}
}
}
NSLog(@"%@",arr);
NSLog(@"%lu",(unsigned long)arr.count);
for (int k=0; k<arr.count; k++)
{
[arrDuplicateImages addObject:[arrImage objectAtIndex:[[arr objectAtIndex:k] integerValue]]];
}
}
答案 0 :(得分:2)
我喜欢在比较图像数据的项目中。如果你想尝试它,它工作正常:
UIImage *image = [UIImage imageNamed:@"image1.jpeg"];
NSData *imageData= UIImageJPEGRepresentation(image,0.0);
UIImage *imageDuplicate = [UIImage imageNamed:@"image1 copy.jpeg"];
NSData *imageDuplicateData= UIImageJPEGRepresentation(imageDuplicate,0.0);
现在你需要从你的imageData获取字符串:
NSString *str1 = [NSString stringWithFormat:@"%@",imageData];
NSString *str2 = [NSString stringWithFormat:@"%@",imageDuplicateData];
if ([str1 isEqualToString:str2]){
NSLog(@"same images");
} else {
NSLog(@"images are different");
}