class Image in Drupal 9
Same name in this branch
- 9 core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
 - 9 core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image
 - 9 core/modules/image/src/Plugin/InPlaceEditor/Image.php \Drupal\image\Plugin\InPlaceEditor\Image
 - 9 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
 
Same name and namespace in other branches
- 8 core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
 - 10 core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
 
Defines an image object to represent an image file.
Hierarchy
- class \Drupal\Core\Image\Image implements ImageInterface
 
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  
23 string references to 'Image'
- aggregator_entity_extra_field_info in core/
modules/ aggregator/ aggregator.module  - Implements hook_entity_extra_field_info().
 - CKEditorIntegrationTest::setUp in core/
modules/ media_library/ tests/ src/ FunctionalJavascript/ CKEditorIntegrationTest.php  - ContentEntityTest::testMediaSource in core/
modules/ migrate_drupal/ tests/ src/ Kernel/ Plugin/ migrate/ source/ ContentEntityTest.php  - Tests media source plugin.
 - DrupalImage::getButtons in core/
modules/ ckeditor/ src/ Plugin/ CKEditorPlugin/ DrupalImage.php  - Returns the buttons that this plugin provides, along with metadata.
 - EditorImageDialog::buildForm in core/
modules/ editor/ src/ Form/ EditorImageDialog.php  
File
- core/
lib/ Drupal/ Core/ Image/ Image.php, line 15  
Namespace
Drupal\Core\ImageView 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
| 
            Name | 
                  Modifiers | Type | Description | Overrides | 
|---|---|---|---|---|
| 
            Image:: | 
                  protected | property | File size in bytes. | |
| 
            Image:: | 
                  protected | property | Path of the image file. | |
| 
            Image:: | 
                  protected | property | An image toolkit object. | |
| 
            Image:: | 
                  public | function | 
            Applies a toolkit operation to the image. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Instructs the toolkit to save the image in the format specified by the
extension. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Prepares a new image, without loading it from a file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Crops an image to a rectangle specified by the given dimensions. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Converts an image to grayscale. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Returns the size of the image file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Returns the height of the image. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Returns the MIME type of the image file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Retrieves the source path of the image file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Returns the image toolkit used for this image file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Returns the ID of the image toolkit used for this image file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Returns the width of the image. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Checks if the image is valid. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Resizes an image to the given dimensions (ignoring aspect ratio). Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Rotates an image by the given number of degrees. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Closes the image and saves the changes to a file. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Scales an image while maintaining aspect ratio. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | 
            Scales an image to the exact width and height given. Overrides ImageInterface:: | 
                  |
| 
            Image:: | 
                  public | function | Constructs a new Image object. |