Refactored ExifImage to TileImage (shared functionality)