Iphone 检查sqlite中UIImage的重复值

Iphone 检查sqlite中UIImage的重复值,iphone,sqlite,uiimage,Iphone,Sqlite,Uiimage,我的应用程序在SQLite数据库中包含图像。在将UIImage插入数据库之前,我想检查其重复值。图像存储为blob类型。这可能吗?一种方法是将图像数据的散列存储在数据库的另一个字段中,然后与之进行比较。您可以查看此链接-。您还可以将blob数据转换为NSData,然后比较两个NSData对象。+1具体来说,这将显著减少必须比较的图像数量,并使操作在大型集合(数据库)上非常快速虽然仍然需要比较具有匹配哈希的图像。sha1的链接显示了如何从NSData获取哈希:我就是这样做的。NSData imgD

我的应用程序在SQLite数据库中包含图像。在将UIImage插入数据库之前,我想检查其重复值。图像存储为blob类型。这可能吗?

一种方法是将图像数据的散列存储在数据库的另一个字段中,然后与之进行比较。

您可以查看此链接-。您还可以将blob数据转换为NSData,然后比较两个NSData对象。+1具体来说,这将显著减少必须比较的图像数量,并使操作在大型集合(数据库)上非常快速虽然仍然需要比较具有匹配哈希的图像。sha1的链接显示了如何从
NSData
获取哈希:我就是这样做的。NSData imgData=UIImagePNGRepresentation(image.image);NSLog(@“imgdata=%@”,imgdata);UIImage*dataImage=[[UIImage alloc]init];dataImage=[UIImage imageWithData:imgData];NSLog(@“image new=%@”,dataImage);NSString*sqlTmp=[NSString stringWithFormat:@“从图像中选择计数(),其中imgName='%@',dataImage];const char*sqlstmt=[sqlTmp UTF8String];