code: def apply_orientation(im):
      
  
      try:
          kOrientationEXIFTag = 0x0112
          if hasattr(im, '_getexif'): # only present in JPEGs
              e = im._getexif()       # returns None if no EXIF data
              if e is not None:
                  #log.info('EXIF data found: %r', e)
                  orientation = e[kOrientationEXIFTag]
                  f = orientation_funcs[orientation]
                  return f(im)
      except:
          # We'd be here with an invalid orientation value or some random error?
          pass # log.exception("Error applying EXIF Orientation tag")
      return im
docs: Extract the oritentation EXIF tag from the image, which should be a PIL Image instance,
      and if there is an orientation tag that would rotate the image, apply that rotation to
      the Image instance given to do an in-place rotation.
  
      :param Image im: Image instance to inspect
      :return: A possibly transposed image instance