title: Compare two images to check if they are same
body: <p>I got a Profile view with a ImageView where a User can change their picture. I'm saving my old &amp; new image to compare them. I would like to know if they're the same, so if they are I dont need to push the new one to my Server.</p>
  
  <p>I tried this but it doesn't really work:</p>
  
  <pre><code>+ (NSData*)returnImageAsData:(UIImage *)anImage {
      // Get an NSData representation of our images. We use JPEG for the larger image
      // for better compression and PNG for the thumbnail to keep the corner radius transparency
      float i_width = 400.0f;
      float oldWidth = anImage.size.width;
      float scaleFactor = i_width / oldWidth;
  
      float newHeight = anImage.size.height * scaleFactor;
      float newWidth = oldWidth * scaleFactor;
  
      UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
      [anImage drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
      UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
      UIGraphicsEndImageContext();
  
      NSData *imageData = UIImageJPEGRepresentation(newImage, 0.5f);
  
      return imageData;
  }
  
  + (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2
  {
  
      NSData *data1 = [self returnImageAsData:image1];
      NSData *data2 = [self returnImageAsData:image2];
  
      return [data1 isEqual:data2];
  }
  </code></pre>
  
  <p>Any idea how to check if two images are same?</p>
  
  <p>End result:</p>
  
  <pre><code>+ (NSData*)returnImageAsData:(UIImage *)anImage {
      // Get an NSData representation of our images. We use JPEG for the larger image
      // for better compression and PNG for the thumbnail to keep the corner radius transparency
  //    float i_width = 400.0f;
  //    float oldWidth = anImage.size.width;
  //    float scaleFactor = i_width / oldWidth;
  //    
  //    float newHeight = anImage.size.height * scaleFactor;
  //    float newWidth = oldWidth * scaleFactor;
  //    
  //    UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight));
  //    [anImage drawInRect:CGRectMake(0, 0, newWidth, newHeight)];
  //    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
  //    UIGraphicsEndImageContext();
  
      NSData *imageData = UIImageJPEGRepresentation(anImage, 0.5f);
  
      return imageData;
  }
  
  + (BOOL)image:(UIImage *)image1 isEqualTo:(UIImage *)image2
  {
      CGSize size1 = image1.size;
      CGSize size2 = image2.size;
  
      if (CGSizeEqualToSize(size1, size2)) {
          return YES;
      }
  
      NSData *data1 = UIImagePNGRepresentation(image1);
      NSData *data2 = UIImagePNGRepresentation(image2);
  
      return [data1 isEqual:data2];
  }
  </code></pre>