function GDToolkit::getTransparentColor

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

Gets the color set for transparency in GIF images.

Return value

string|null A color string like '#rrggbb', or NULL if not set or not relevant.

1 call to GDToolkit::getTransparentColor()
GDToolkit::load in core/modules/system/src/Plugin/ImageToolkit/GDToolkit.php
Loads an image from a file.

File

core/modules/system/src/Plugin/ImageToolkit/GDToolkit.php, line 400

Class

GDToolkit
Defines the GD2 toolkit for image manipulation within Drupal.

Namespace

Drupal\system\Plugin\ImageToolkit

Code

public function getTransparentColor() {
    if (!$this->getImage() || $this->getType() != IMAGETYPE_GIF) {
        return NULL;
    }
    // Find out if a transparent color is set, will return -1 if no
    // transparent color has been defined in the image.
    $transparent = imagecolortransparent($this->getImage());
    if ($transparent >= 0) {
        // Find out the number of colors in the image palette. It will be 0 for
        // truecolor images.
        $palette_size = imagecolorstotal($this->getImage());
        if ($palette_size == 0 || $transparent < $palette_size) {
            // Return the transparent color, either if it is a truecolor image
            // or if the transparent color is part of the palette.
            // Since the index of the transparent color is a property of the
            // image rather than of the palette, it is possible that an image
            // could be created with this index set outside the palette size.
            // (see http://stackoverflow.com/a/3898007).
            $rgb = imagecolorsforindex($this->getImage(), $transparent);
            unset($rgb['alpha']);
            return Color::rgbToHex($rgb);
        }
    }
    return NULL;
}

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