title: Algorithm to compare two images in C#
body: <p>I'm writing a tool in C# to find duplicate images. Currently I create an MD5 checksum of the files and compare those. </p>
  
  <p>Unfortunately, the images can be:</p>
  
  <ul>
  <li>Rotated by 90 degrees.</li>
  <li>Have different dimensions (smaller image with same content).</li>
  <li>Have different compression or file types (e.g. jpeg artifacts, see below).</li>
  </ul>
  
  <p><a href="https://i.stack.imgur.com/UvKaV.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/UvKaV.jpg" alt="higher resolution koala"></a><a href="https://i.stack.imgur.com/8lplJ.jpg" rel="noreferrer"><img src="https://i.stack.imgur.com/8lplJ.jpg" alt="lower resolution koala"></a></p>
  
  <p>What would be the best approach to solve this problem?</p>