Civi adds whitespace into contact images
After much digging, I found the reason why contact images were not appearing.

It was due to a module that had a PHP file with two new lines before the opening PHP tag &lt;?php.

To figure this out, I created a local copy of the website and went through the modules list, enabling them one by one to see at what point the image broke. 

Once I'd found which one broke the image, it wasn't hard to go through the files, searching for the whitespace.

Removed the two new lines before the tag and the image instantly worked.

Hopefully this will come to some use if anyone has a dodgy contact image!

On a side note, this also fixed the Mosaico problem I was having - Failed to locate Mosaico graphics driver