function Resize::execute

Same name and namespace in other branches
  1. 9 core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Resize.php \Drupal\system\Plugin\ImageToolkit\Operation\gd\Resize::execute()
  2. 8.9.x core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Resize.php \Drupal\system\Plugin\ImageToolkit\Operation\gd\Resize::execute()
  3. 11.x core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Resize.php \Drupal\system\Plugin\ImageToolkit\Operation\gd\Resize::execute()

Performs the actual manipulation on the image.

Image toolkit operation implementers must implement this method. This method is responsible for actually performing the operation on the image. When this method gets called, the implementer may assume all arguments, also the optional ones, to be available, validated and corrected.

Parameters

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

Return value

bool TRUE if the operation was performed successfully, FALSE otherwise.

Overrides ImageToolkitOperationBase::execute

1 call to Resize::execute()
Scale::execute in core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Scale.php
Performs the actual manipulation on the image.
1 method overrides Resize::execute()
Scale::execute in core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Scale.php
Performs the actual manipulation on the image.

File

core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Resize.php, line 56

Class

Resize
Defines GD2 resize operation.

Namespace

Drupal\system\Plugin\ImageToolkit\Operation\gd

Code

protected function execute(array $arguments = []) {
    // Create a new image of the required dimensions, and copy and resize
    // the original image on it with resampling.
    $original_image = $this->getToolkit()
        ->getImage();
    $data = [
        'width' => $arguments['width'],
        'height' => $arguments['height'],
        'extension' => image_type_to_extension($this->getToolkit()
            ->getType(), FALSE),
        'transparent_color' => $this->getToolkit()
            ->getTransparentColor(),
        'is_temp' => TRUE,
    ];
    if ($this->getToolkit()
        ->apply('create_new', $data)) {
        if (imagecopyresampled($this->getToolkit()
            ->getImage(), $original_image, 0, 0, 0, 0, $arguments['width'], $arguments['height'], imagesx($original_image), imagesy($original_image))) {
            return TRUE;
        }
        // In case of failure, restore the original image.
        $this->getToolkit()
            ->setImage($original_image);
    }
    return FALSE;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.