You are here

protected function ImageWatermark::validateArguments in Image effect kit 8

Validates the arguments.

Image toolkit operation implementers should place any argument validation in this method, throwing an InvalidArgumentException when an error is encountered.

Validation typically includes things like:

  • Checking that width and height are not negative.
  • Checking that a color value is indeed a color.

But validation may also include correcting the arguments, e.g:

  • Casting arguments to the correct type.
  • Rounding pixel values to an integer.

This base implementation just returns the array of arguments and thus does not need to be called by overriding methods.

Parameters

array $arguments: An associative array of arguments to be used by the toolkit operation.

Return value

array The validated and corrected arguments array.

Throws

\InvalidArgumentException If one or more of the arguments are not valid.

\Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException If the plugin does not define a default for an optional argument.

Overrides ImageToolkitOperationBase::validateArguments

File

src/Plugin/ImageToolkit/Operation/gd/ImageWatermark.php, line 66
Contains \Drupal\iek\Plugin\ImageToolkit\Operation\gd\ImageWatermark.

Class

ImageWatermark
Defines IEK - Watermark operation.

Namespace

Drupal\iek\Plugin\ImageToolkit\Operation\gd

Code

protected function validateArguments(array $arguments) {
  if (empty($arguments['text'])) {
    throw new \InvalidArgumentException("Invalid text ('{$arguments['text']}') specified for the image 'iek_image_watermark' operation");
  }
  if (empty($arguments['font'])) {
    throw new \InvalidArgumentException("Invalid font ('{$arguments['font']}') specified for the image 'iek_image_watermark' operation");
  }

  // TODO - validate color code.
  if ((int) $arguments['size'] <= 0) {
    throw new \InvalidArgumentException("Invalid size ('{$arguments['size']}') specified for the image 'iek_image_watermark' operation");
  }
  if (!is_numeric($arguments['angle'])) {
    throw new \InvalidArgumentException("Invalid angle ('{$arguments['angle']}') specified for the image 'iek_image_watermark' operation");
  }

  // Fail when padding is negative.
  if ((int) $arguments['padding_top'] < 0) {
    throw new \InvalidArgumentException("Invalid padding ('{$arguments['padding_top']}') specified for the image 'iek_image_watermark' operation");
  }

  // Fail when padding is negative.
  if ((int) $arguments['padding_right'] < 0) {
    throw new \InvalidArgumentException("Invalid padding ('{$arguments['padding_right']}') specified for the image 'iek_image_watermark' operation");
  }

  // Fail when padding is negative.
  if ((int) $arguments['padding_bottom'] < 0) {
    throw new \InvalidArgumentException("Invalid padding ('{$arguments['padding_bottom']}') specified for the image 'iek_image_watermark' operation");
  }

  // Fail when padding is negative.
  if ((int) $arguments['padding_left'] < 0) {
    throw new \InvalidArgumentException("Invalid padding ('{$arguments['padding_left']}') specified for the image 'iek_image_watermark' operation");
  }
  return $arguments;
}