def _ProcessTransforms()

in src/google/appengine/api/images/images_stub.py [0:0]


  def _ProcessTransforms(self, image, transforms, correct_orientation):
    """Execute PIL operations based on transform values.

    Args:
      image: PIL.Image.Image instance, image to manipulate.
      transforms: list of ImagesTransformRequest.Transform objects.
      correct_orientation: True to indicate that image orientation should be
        corrected based on its EXIF.
    Returns:
      PIL.Image.Image with transforms performed on it.

    Raises:
      ApplicationError: More than one of the same type of transform was present.
    """
    new_image = image
    if len(transforms) > images.MAX_TRANSFORMS_PER_REQUEST:
      raise apiproxy_errors.ApplicationError(
          images_service_pb2.ImagesServiceError.BAD_TRANSFORM_DATA)

    orientation = 1
    if correct_orientation:


      exif = self._GetExifFromImage(image)
      if not exif or _EXIF_ORIENTATION_TAG not in exif:
        correct_orientation = False
      else:
        orientation = exif[_EXIF_ORIENTATION_TAG]

      width, height = new_image.size
      if height > width:
        orientation = 1

    for transform in transforms:







      if (correct_orientation and not (transform.HasField('crop_left_x') or
                                       transform.HasField('crop_top_y') or
                                       transform.HasField('crop_right_x') or
                                       transform.HasField('crop_bottom_y')) and
          not transform.HasField('horizontal_flip') and
          not transform.HasField('vertical_flip')):
        new_image = self._CorrectOrientation(new_image, orientation)
        correct_orientation = False

      if transform.HasField('width') or transform.HasField('height'):

        new_image = self._Resize(new_image, transform)

      elif transform.HasField('rotate'):

        new_image = self._Rotate(new_image, transform)

      elif transform.HasField('horizontal_flip'):

        new_image = new_image.transpose(Image.FLIP_LEFT_RIGHT)

      elif transform.HasField('vertical_flip'):

        new_image = new_image.transpose(Image.FLIP_TOP_BOTTOM)

      elif (transform.HasField('crop_left_x') or
            transform.HasField('crop_top_y') or
            transform.HasField('crop_right_x') or
            transform.HasField('crop_bottom_y')):

        new_image = self._Crop(new_image, transform)

      elif transform.HasField('autolevels'):


        logging.info('I\'m Feeling Lucky autolevels will be visible once this '
                     'application is deployed.')
      else:
        logging.warning('Found no transformations found to perform.')

      if correct_orientation:


        new_image = self._CorrectOrientation(new_image, orientation)
        correct_orientation = False




    return new_image