class Background in Image Effects 8.3
Same name in this branch
- 8.3 src/Plugin/ImageToolkit/Operation/gd/Background.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\gd\Background
- 8.3 src/Plugin/ImageToolkit/Operation/imagemagick/Background.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\Background
Same name and namespace in other branches
- 8 src/Plugin/ImageToolkit/Operation/imagemagick/Background.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\Background
- 8.2 src/Plugin/ImageToolkit/Operation/imagemagick/Background.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\Background
Defines ImageMagick Background operation.
Plugin annotation
@ImageToolkitOperation(
  id = "image_effects_imagemagick_background",
  toolkit = "imagemagick",
  operation = "background",
  label = @Translation("Background"),
  description = @Translation("Places the source image over a background image.")
)
Hierarchy
- class \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\Background extends \Drupal\imagemagick\Plugin\ImageToolkit\Operation\imagemagick\ImagemagickImageToolkitOperationBase uses BackgroundTrait
Expanded class hierarchy of Background
File
- src/Plugin/ ImageToolkit/ Operation/ imagemagick/ Background.php, line 19 
Namespace
Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagickView source
class Background extends ImagemagickImageToolkitOperationBase {
  use BackgroundTrait;
  /**
   * {@inheritdoc}
   */
  protected function execute(array $arguments) {
    // Background image local path.
    $local_path = $arguments['background_image']
      ->getToolkit()
      ->ensureSourceLocalPath();
    if ($local_path !== '') {
      $image_path = $this
        ->escapeArgument($local_path);
    }
    else {
      $source_path = $arguments['background_image']
        ->getToolkit()
        ->getSource();
      throw new \InvalidArgumentException("Missing local path for image at {$source_path}");
    }
    // Reset any gravity settings from earlier effects.
    $op = '-gravity None';
    // Set transparent background.
    $op .= " -background transparent";
    // Set the dimensions of the background.
    $w = $arguments['background_image']
      ->getToolkit()
      ->getWidth();
    $h = $arguments['background_image']
      ->getToolkit()
      ->getHeight();
    // Reverse offset sign. Offset arguments require a sign in front.
    // @todo the minus before $arguments gives issues to PHPCS, either as is
    // or with a space in between the minus and the variable. See if later
    // sniffs fix that.
    // @codingStandardsIgnoreStart
    $x = $arguments['x_offset'] > 0 ? '-' . $arguments['x_offset'] : '+' . -$arguments['x_offset'];
    $y = $arguments['y_offset'] > 0 ? '-' . $arguments['y_offset'] : '+' . -$arguments['y_offset'];
    // @codingStandardsIgnoreEnd
    $op .= " -extent {$w}x{$h}{$x}{$y} ";
    // Add the background image.
    $op .= $image_path;
    // Compose it with the destination.
    if ($arguments['opacity'] == 100) {
      $op .= ' -compose dst-over -composite';
    }
    else {
      $op .= " -compose blend -define compose:args=100,{$arguments['opacity']} -composite";
    }
    $this
      ->addArgument($op);
    $this
      ->getToolkit()
      ->setWidth($w)
      ->setHeight($h);
    return TRUE;
  }
}Members
| Name   | Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| Background:: | protected | function | ||
| BackgroundTrait:: | protected | function | ||
| BackgroundTrait:: | protected | function | 
