2017-06-07 7 views
-1

私は2つの画像をお互いに比較したいです。可能であれば、コードを教えてください。私はそれを試みましたが、それはより多くの記憶を取ることであり、比較するのに巨大な時間がかかります。2枚の画像を比較できますか?

私のデバイスでは同じ2つのイメージを利用できますが、そのURLは異なっています。最初に、私はそのURLをイメージに変換してから、データに変換してお互いを比較しました。

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init]; 
      [library assetForURL:imageUrl 
         resultBlock:^(ALAsset *asset) { 
         UIImage *image1=[UIImage imageWithCGImage:[[asset defaultRepresentation] fullScreenImage]]; 

          NSData *data1 = UIImageJPEGRepresentation(image1, 0.01); 
          NSData *data2 = UIImageJPEGRepresentation(image2, 0.01); 

          if ([data1 isEqualToData:data2]){ 
           NSLog(@"YES"); 
          } 
          else{ 
           NSLog(@"NO"); 
          } 

         } 

        failureBlock:^(NSError *error){ 
         NSLog(@"operation was not successfull!"); 
        } ]; 
+0

あなたの質問には、自分が刺さ間の比較受け入れるあなたがこの問題を解決しようとした任意の研究や試みを欠いています。あなたが私のコードを追加すると、あなたの質問が下に浮かび上がってくるので、あなたの質問は下に落とされます。あなたは単にあなたがどのようにイメージを比較したいかを明確にしたいかもしれません。 – rckoenes

+0

メモリを増やすことなく高速比較したい。ここでこのコードはより多くの時間とメモリを必要とします。 – Varun

+0

ここで私のデバイスで2つの同じイメージが利用可能ですが、それはURLですdifferent.Sso最初に私はイメージに変換し、その後、データに変換し、お互いを比較していた。 – Varun

答えて

1

あなたは自分のNSDataを使用して、両方の画像を比較することができます。..

- (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2 
{ 
    NSData *imgData1 = UIImagePNGRepresentation(image1); 
    NSData *imgData2 = UIImagePNGRepresentation(image2); 

    return [imgData1 isEqual:imgData2]; 
} 
関連する問題