我正在开发一个应用程序.因为我在imageviews更改UIImageview图像之前使用.SO 我需要在UIimageobejct中获取该图像并与另一个UIImage对象进行比较以找到它们是否为sam.所以请告诉我如何做到这一点.
我试图比较文件系统中的两个UIImages,看看它们是否相同.显然,我不能使用NSObject的哈希方法,因为这会返回对象的哈希值,而不是实际的图像数据.
我发现代码从字符串生成MD5哈希,但我还没有发现如何为UIImage实现它.
我应该怎样去散列UIImage呢?或者我的方法是完全关闭图像?
我必须从数据库中填充表格单元格,并且图像在设备上.我要存储该图像imageDataObject,如何将其转换UIImage为NSData.请建议,我尝试了许多解决方案,但它不转换回该NSData给UIImage.
cell.textLabel.text = [[offlineImageListArray objectAtIndex:indexPath.row] imageName];
UIImage *thumbnail = [self retrieveImageFromDevice:[[offlineImageListArray objectAtIndex:indexPath.row] imageName]];
NSData* data = ??????????;
ImageData *imageDataObject = [[ImageData alloc] initWithImageId:[[offlineImageListArray objectAtIndex:indexPath.row]imageId]
imageName:[[offlineImageListArray objectAtIndex:indexPath.row] imageName] imageData:data];
[imagesArray addObject:imageDataObject];
Run Code Online (Sandbox Code Playgroud) 我找到了这段代码,并试图更好地理解它:
UIImage *img1 = // Some photo;
UIImage *img2 = // Some photo;
NSData *imgdata1 = UIImagePNGRepresentation(img1);
NSData *imgdata2 = UIImagePNGRepresentation(img2);
if ([imgdata1 isEqualToData:imgdata2]) {
NSLog(@"Same Image");
}
Run Code Online (Sandbox Code Playgroud)
这是否证实图像1与图像2完全相同?这种方法是最佳实践,还是有更好的方法?
我已经在stackowerflow上阅读了很多关于解决方案的问题和答案,但仍然无法找到有助于解决我的问题的解决方案.
所以我有两个非常大的图像,我需要比较它们.
图像不是用imageNamed:它们创建的,所以它们没有兑现,所以[image1 isEqual:image2] 不应该工作.
根据我的理解比较它们的唯一解决方案就是这个:
- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2
{
return [UIImagePNGRepresentation(image1) isEqual:UIImagePNGRepresentation(image2)];
}
Run Code Online (Sandbox Code Playgroud)
但是图像的尺寸非常大,因此需要一些时间进行比较.
是否有任何属性可以帮助不使用上述方法来检查它们是否相等?
例如,我可以得到image1.size并与之比较image2.size,它们不相等,我不需要运行上面的方法.有任何想法吗?谢谢.