You are here

protected function SetGifTransparentColor::execute in Image Effects 8.2

Same name in this branch
  1. 8.2 src/Plugin/ImageToolkit/Operation/gd/SetGifTransparentColor.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\gd\SetGifTransparentColor::execute()
  2. 8.2 src/Plugin/ImageToolkit/Operation/imagemagick/SetGifTransparentColor.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\SetGifTransparentColor::execute()
Same name and namespace in other branches
  1. 8.3 src/Plugin/ImageToolkit/Operation/imagemagick/SetGifTransparentColor.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\SetGifTransparentColor::execute()
  2. 8 src/Plugin/ImageToolkit/Operation/imagemagick/SetGifTransparentColor.php \Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick\SetGifTransparentColor::execute()

File

src/Plugin/ImageToolkit/Operation/imagemagick/SetGifTransparentColor.php, line 27

Class

SetGifTransparentColor
Defines ImageMagick set_gif_transparent_color image operation.

Namespace

Drupal\image_effects\Plugin\ImageToolkit\Operation\imagemagick

Code

protected function execute(array $arguments) {
  $toolkit_arguments = $this
    ->getToolkit()
    ->arguments();
  $format = $toolkit_arguments
    ->getDestinationFormat() ?: $toolkit_arguments
    ->getSourceFormat();
  $mime_type = $this
    ->getFormatMapper()
    ->getMimeTypeFromFormat($format);
  if ($mime_type === 'image/gif' && $arguments['transparent_color']) {
    $find = $toolkit_arguments
      ->find('/^\\-alpha off \\-transparent\\-color/');
    if (!empty($find)) {
      reset($find);
      $toolkit_arguments
        ->remove(key($find));
    }
    $this
      ->addArgument('-alpha off -transparent-color ' . $this
      ->escapeArgument($arguments['transparent_color']) . ' -transparent ' . $this
      ->escapeArgument($arguments['transparent_color']));
  }
}