相似如何图片查找:
NSMutableArray<OSTuple<OSImageId *, NSData *> *> *dataArr = [NSMutableArray new];
for(inti =0; i < [allDatascount]; i++) {
OSTuple *tuple = [OSTupletupleWithFirst:requestIDArray[i]andSecond:allDatas[i]];
[dataArraddObject:tuple];
}
// 计算代码运行时间
// CFAbsoluteTime startTime = CFAbsoluteTimeGetCurrent();
//截图加载
//[self getAllAlbumImageFromPhotoJieTuData];
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
//添加图片耗时操作
self.allSimilarImages = [[OSImageHashing sharedInstance] similarImagesWithHashingQuality:OSImageHashingQualityHigh forImages:dataArr];
//图片大小
//float allImageSize = 0;
NSDictionary<OSImageId *, NSSet<OSImageId *> *> *dict = [[OSImageHashing sharedInstance] dictionaryFromSimilarImagesResult:self.allSimilarImages];
NSMutableArray *all = [NSMutableArray array];
NSArray*keys = [dictallKeys];
for(inti =0; i < [dictcount]; i++) {
NSMutableArray *sub = [NSMutableArray array];
[subaddObject:keys[i]];
NSSet*set = [dictobjectForKey:keys[i]];
NSEnumerator*enumerator = [setobjectEnumerator];
NSString*value;
while((value = [enumeratornextObject])) {
[subaddObject:value];
PHFetchResult*result = [PHAssetfetchAssetsWithLocalIdentifiers:@[value]options:nil];
// 根据获取的results 来获取相应的asset(此时的asset是完整的)
[resultenumerateObjectsUsingBlock:^(id_Nonnullobj,NSUIntegeridx,BOOL*_Nonnullstop) {
PHAsset*imageAsset = obj;
[[PHImageManagerdefaultManager]requestImageDataForAsset:imageAssetoptions:nilresultHandler:^(NSData*_NullableimageData,NSString*_NullabledataUTI,UIImageOrientationorientation,NSDictionary*_Nullableinfo) {
NSIntegerlength = imageData.length; // 图片大小,单位B
self.allImageSize=self.allImageSize+(float)(length/1024);
//self.allAlbumImageSize =self.allAlbumImageSize+ (float)(length/1024);
// NSLog(@"size of asset in bytes: %0.2f", self.selectFileSize);
//self.fileSizelabel.text = [NSString stringWithFormat:@"Send file size:% 0.2fM",self.selectFileSize/1024];
}];
}];
}
[alladdObject:sub];
}









网友评论