class Image in Drupal 8
Same name in this branch
- 8 core/lib/Drupal/Core/Image/Image.php \Drupal\Core\Image\Image
- 8 core/lib/Drupal/Component/Utility/Image.php \Drupal\Component\Utility\Image
- 8 core/modules/image/src/Plugin/InPlaceEditor/Image.php \Drupal\image\Plugin\InPlaceEditor\Image
- 8 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image
Same name and namespace in other branches
- 9 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 
20 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,
    ]);
  }
  /**
   * Provides a wrapper for drupal_chmod() to allow unit testing.
   *
   * @param string $uri
   *   A string containing a URI file, or directory path.
   * @param int $mode
   *   Integer value for the permissions. Consult PHP chmod() documentation for
   *   more information.
   *
   * @return bool
   *   TRUE for success, FALSE in the event of an error.
   *
   * @deprecated in drupal:8.0.0 and is removed from drupal:9.0.0.
   *   Use \Drupal\Core\File\FileSystem::chmod().
   *
   * @see \Drupal\Core\File\FileSystemInterface::chmod()
   * @see https://www.drupal.org/node/2418133
   */
  protected function chmod($uri, $mode = NULL) {
    @trigger_error('chmod() is deprecated in Drupal 8.0.0 and will be removed before Drupal 9.0.0. Use \\Drupal\\Core\\File\\FileSystemInterface::chmod(). See https://www.drupal.org/node/2418133.', E_USER_DEPRECATED);
    return \Drupal::service('file_system')
      ->chmod($uri, $mode);
  }
}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:: | protected | function | Provides a wrapper for drupal_chmod() to allow unit testing. | |
| 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. | 
