【问题标题】:how to compare image array to find duplicate image in ios [duplicate]如何比较图像数组以在ios中查找重复图像[重复]
【发布时间】:2016-03-28 07:43:16
【问题描述】:

我正在开发一款名为 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]]];
    }
}

【问题讨论】:

  • 我试过了,但在真机上不行

标签: ios arrays image duplicates


【解决方案1】:

我更喜欢在我的项目中比较图像数据。如果您想尝试,效果很好:

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");

}

【讨论】:

  • 但我正在使用本地照片应用程序...我从照片应用程序中获取所有图像并从中找到重复...
  • 您是否使用任何类型的分页来获取图像数组?
  • 是的............
  • 那么我可以建议一种使用 NSSet 的方法。当您将获得图像数组时,将其添加到 NSSet。该集合包含我们从图像数据中获得的任何字符串。
  • 让我试试这个......
猜你喜欢
  • 1970-01-01
  • 2021-03-20
  • 1970-01-01
  • 2011-06-27
  • 2021-05-15
  • 1970-01-01
  • 2011-05-04
  • 1970-01-01
  • 2015-07-15
相关资源
最近更新 更多