protected function Rotate::execute in Drupal 10
Same name and namespace in other branches
- 8 core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Rotate.php \Drupal\system\Plugin\ImageToolkit\Operation\gd\Rotate::execute()
- 9 core/modules/system/src/Plugin/ImageToolkit/Operation/gd/Rotate.php \Drupal\system\Plugin\ImageToolkit\Operation\gd\Rotate::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
File
- core/
modules/ system/ src/ Plugin/ ImageToolkit/ Operation/ gd/ Rotate.php, line 89
Class
- Rotate
- Defines GD2 rotate operation.
Namespace
Drupal\system\Plugin\ImageToolkit\Operation\gdCode
protected function execute(array $arguments) {
// PHP installations using non-bundled GD do not have imagerotate.
if (!function_exists('imagerotate')) {
$this->logger
->notice('The image %file could not be rotated because the imagerotate() function is not available in this PHP installation.', [
'%file' => $this
->getToolkit()
->getSource(),
]);
return FALSE;
}
// Stores the original GD resource.
$original_res = $this
->getToolkit()
->getResource();
if ($new_res = imagerotate($this
->getToolkit()
->getResource(), 360 - $arguments['degrees'], $arguments['background_idx'])) {
$this
->getToolkit()
->setResource($new_res);
imagedestroy($original_res);
// GIFs need to reassign the transparent color after performing the
// rotate, but only do so, if the image already had transparency of its
// own, or the rotate added a transparent background.
if (!empty($arguments['gif_transparent_color'])) {
$transparent_idx = imagecolorexactalpha($this
->getToolkit()
->getResource(), $arguments['gif_transparent_color']['red'], $arguments['gif_transparent_color']['green'], $arguments['gif_transparent_color']['blue'], $arguments['gif_transparent_color']['alpha']);
imagecolortransparent($this
->getToolkit()
->getResource(), $transparent_idx);
}
return TRUE;
}
return FALSE;
}