code: def process_tile(tile_x, tile_y, tile_size, pix, draw, image):
      
      logging.debug('Processing tile (%d, %d)', tile_x, tile_y)
  
      # Calculate average color for each "triangle" in the given tile
      n, e, s, w = triangle_colors(tile_x, tile_y, tile_size, pix)
  
      # Calculate distance between triangle pairs
      d_ne = get_color_dist(n, e)
      d_nw = get_color_dist(n, w)
      d_se = get_color_dist(s, e)
      d_sw = get_color_dist(s, w)
  
      # Figure out which pair is the closest, which will determine the direction
      # we'll split this tile into triangles. A 'right' split runs from top left
      # to bottom right. A 'left' split runs bottom left to top right.
      closest = sorted([d_ne, d_nw, d_se, d_sw])[0]
      if closest in (d_ne, d_sw):
          split = 'right'
      elif closest in (d_nw, d_se):
          split = 'left'
  
      # Figure out the average color for each side of the "split"
      if split == 'right':
          top_color = get_average_color([n, e])
          bottom_color = get_average_color([s, w])
      else:
          top_color = get_average_color([n, w])
          bottom_color = get_average_color([s, e])
  
      draw_triangles(tile_x, tile_y, tile_size, split, top_color, bottom_color,
                     draw)
docs: Process a tile whose top left corner is at the given x and y
      coordinates.