class Image

Same name in this branch
  1. 9 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
  2. 9 core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Image.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Image
  3. 9 core/modules/quickedit/src/Plugin/InPlaceEditor/Image.php \Drupal\quickedit\Plugin\InPlaceEditor\Image
  4. 9 core/modules/image/src/Plugin/InPlaceEditor/Image.php \Drupal\image\Plugin\InPlaceEditor\Image
  5. 9 core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image
Same name in other branches
  1. 8.9.x core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
  2. 8.9.x core/modules/image/src/Plugin/InPlaceEditor/Image.php \Drupal\image\Plugin\InPlaceEditor\Image
  3. 8.9.x core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
  4. 8.9.x core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image
  5. 10 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
  6. 10 core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Image.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Image
  7. 10 core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
  8. 10 core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image
  9. 11.x core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
  10. 11.x core/modules/ckeditor5/src/Plugin/CKEditor5Plugin/Image.php \Drupal\ckeditor5\Plugin\CKEditor5Plugin\Image
  11. 11.x core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
  12. 11.x core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image

Defines an image object to represent an image file.

Hierarchy

Expanded class hierarchy of Image

See also

\Drupal\Core\ImageToolkit\ImageToolkitInterface

\Drupal\image\ImageEffectInterface

Related topics

1 file declares its use of Image
ImageTest.php in core/tests/Drupal/Tests/Core/Image/ImageTest.php
298 string references to 'Image'
aggregator_entity_extra_field_info in core/modules/aggregator/aggregator.module
Implements hook_entity_extra_field_info().
AjaxFileManagedMultipleTest::testMultipleFilesUpload in core/modules/file/tests/src/FunctionalJavascript/AjaxFileManagedMultipleTest.php
Tests if managed file form element works well with multiple files upload.
ckeditor5.ckeditor5.yml in core/modules/ckeditor5/ckeditor5.ckeditor5.yml
core/modules/ckeditor5/ckeditor5.ckeditor5.yml
CKEditor5AllowedTagsTest::testImgAddedViaUploadPlugin in core/modules/ckeditor5/tests/src/FunctionalJavascript/CKEditor5AllowedTagsTest.php
Tests that the img tag is added after enabling image uploads.
CKEditor5Test::testActiveTabsMaintained in core/modules/ckeditor5/tests/src/FunctionalJavascript/CKEditor5Test.php
Confirms active tab status is intact after AJAX refresh.

... See full list

File

core/lib/Drupal/Core/Image/Image.php, line 15

Namespace

Drupal\Core\Image
View source
class Image implements ImageInterface {
    
    /**
     * Path of the image file.
     *
     * @var string
     */
    protected $source = '';
    
    /**
     * An image toolkit object.
     *
     * @var \Drupal\Core\ImageToolkit\ImageToolkitInterface
     */
    protected $toolkit;
    
    /**
     * File size in bytes.
     *
     * @var int
     */
    protected $fileSize;
    
    /**
     * Constructs a new Image object.
     *
     * @param \Drupal\Core\ImageToolkit\ImageToolkitInterface $toolkit
     *   The image toolkit.
     * @param string|null $source
     *   (optional) The path to an image file, or NULL to construct the object
     *   with no image source.
     */
    public function __construct(ImageToolkitInterface $toolkit, $source = NULL) {
        $this->toolkit = $toolkit;
        if ($source) {
            $this->source = $source;
            $this->getToolkit()
                ->setSource($this->source);
            // Defer image file validity check to the toolkit.
            if ($this->getToolkit()
                ->parseFile()) {
                $this->fileSize = filesize($this->source);
            }
        }
    }
    
    /**
     * {@inheritdoc}
     */
    public function isValid() {
        return $this->getToolkit()
            ->isValid();
    }
    
    /**
     * {@inheritdoc}
     */
    public function getHeight() {
        return $this->getToolkit()
            ->getHeight();
    }
    
    /**
     * {@inheritdoc}
     */
    public function getWidth() {
        return $this->getToolkit()
            ->getWidth();
    }
    
    /**
     * {@inheritdoc}
     */
    public function getFileSize() {
        return $this->fileSize;
    }
    
    /**
     * {@inheritdoc}
     */
    public function getMimeType() {
        return $this->getToolkit()
            ->getMimeType();
    }
    
    /**
     * {@inheritdoc}
     */
    public function getSource() {
        return $this->source;
    }
    
    /**
     * {@inheritdoc}
     */
    public function getToolkitId() {
        return $this->getToolkit()
            ->getPluginId();
    }
    
    /**
     * {@inheritdoc}
     */
    public function getToolkit() {
        return $this->toolkit;
    }
    
    /**
     * {@inheritdoc}
     */
    public function save($destination = NULL) {
        // Return immediately if the image is not valid.
        if (!$this->isValid()) {
            return FALSE;
        }
        $destination = $destination ?: $this->getSource();
        if ($return = $this->getToolkit()
            ->save($destination)) {
            // Clear the cached file size and refresh the image information.
            clearstatcache(TRUE, $destination);
            $this->fileSize = filesize($destination);
            $this->source = $destination;
            if (\Drupal::service('file_system')->chmod($destination)) {
                return $return;
            }
        }
        return FALSE;
    }
    
    /**
     * {@inheritdoc}
     */
    public function apply($operation, array $arguments = []) {
        return $this->getToolkit()
            ->apply($operation, $arguments);
    }
    
    /**
     * {@inheritdoc}
     */
    public function createNew($width, $height, $extension = 'png', $transparent_color = '#ffffff') {
        return $this->apply('create_new', [
            'width' => $width,
            'height' => $height,
            'extension' => $extension,
            'transparent_color' => $transparent_color,
        ]);
    }
    
    /**
     * {@inheritdoc}
     */
    public function convert($extension) {
        return $this->apply('convert', [
            'extension' => $extension,
        ]);
    }
    
    /**
     * {@inheritdoc}
     */
    public function crop($x, $y, $width, $height = NULL) {
        return $this->apply('crop', [
            'x' => $x,
            'y' => $y,
            'width' => $width,
            'height' => $height,
        ]);
    }
    
    /**
     * {@inheritdoc}
     */
    public function desaturate() {
        return $this->apply('desaturate', []);
    }
    
    /**
     * {@inheritdoc}
     */
    public function resize($width, $height) {
        return $this->apply('resize', [
            'width' => $width,
            'height' => $height,
        ]);
    }
    
    /**
     * {@inheritdoc}
     */
    public function rotate($degrees, $background = NULL) {
        return $this->apply('rotate', [
            'degrees' => $degrees,
            'background' => $background,
        ]);
    }
    
    /**
     * {@inheritdoc}
     */
    public function scaleAndCrop($width, $height) {
        return $this->apply('scale_and_crop', [
            'width' => $width,
            'height' => $height,
        ]);
    }
    
    /**
     * {@inheritdoc}
     */
    public function scale($width, $height = NULL, $upscale = FALSE) {
        return $this->apply('scale', [
            'width' => $width,
            'height' => $height,
            'upscale' => $upscale,
        ]);
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
Image::$fileSize protected property File size in bytes.
Image::$source protected property Path of the image file.
Image::$toolkit protected property An image toolkit object.
Image::apply public function Applies a toolkit operation to the image. Overrides ImageInterface::apply
Image::convert public function Converts an image to the format specified by the extension. Overrides ImageInterface::convert
Image::createNew public function Prepares a new image, without loading it from a file. Overrides ImageInterface::createNew
Image::crop public function Crops an image to a rectangle specified by the given dimensions. Overrides ImageInterface::crop
Image::desaturate public function Converts an image to grayscale. Overrides ImageInterface::desaturate
Image::getFileSize public function Returns the size of the image file. Overrides ImageInterface::getFileSize
Image::getHeight public function Returns the height of the image. Overrides ImageInterface::getHeight
Image::getMimeType public function Returns the MIME type of the image file. Overrides ImageInterface::getMimeType
Image::getSource public function Retrieves the source path of the image file. Overrides ImageInterface::getSource
Image::getToolkit public function Returns the image toolkit used for this image file. Overrides ImageInterface::getToolkit
Image::getToolkitId public function Returns the ID of the image toolkit used for this image file. Overrides ImageInterface::getToolkitId
Image::getWidth public function Returns the width of the image. Overrides ImageInterface::getWidth
Image::isValid public function Checks if the image is valid. Overrides ImageInterface::isValid
Image::resize public function Resizes an image to the given dimensions (ignoring aspect ratio). Overrides ImageInterface::resize
Image::rotate public function Rotates an image by the given number of degrees. Overrides ImageInterface::rotate
Image::save public function Closes the image and saves the changes to a file. Overrides ImageInterface::save
Image::scale public function Scales an image while maintaining aspect ratio. Overrides ImageInterface::scale
Image::scaleAndCrop public function Scales an image to the exact width and height given. Overrides ImageInterface::scaleAndCrop
Image::__construct public function Constructs a new Image object.

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