function Image::getMetadata

Same name and namespace in other branches
  1. 9 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image::getMetadata()
  2. 8.9.x core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image::getMetadata()
  3. 10 core/modules/media/src/Plugin/media/Source/Image.php \Drupal\media\Plugin\media\Source\Image::getMetadata()

Overrides File::getMetadata

File

core/modules/media/src/Plugin/media/Source/Image.php, line 124

Class

Image
Image entity media source.

Namespace

Drupal\media\Plugin\media\Source

Code

public function getMetadata(MediaInterface $media, $name) {
    // Get the file and image data.
    
    /** @var \Drupal\file\FileInterface $file */
    $file = $media->get($this->configuration['source_field'])->entity;
    // If the source field is not required, it may be empty.
    if (!$file) {
        return parent::getMetadata($media, $name);
    }
    $uri = $file->getFileUri();
    switch ($name) {
        case static::METADATA_ATTRIBUTE_WIDTH:
            $image = $this->imageFactory
                ->get($uri);
            return $image->getWidth() ?: NULL;
        case static::METADATA_ATTRIBUTE_HEIGHT:
            $image = $this->imageFactory
                ->get($uri);
            return $image->getHeight() ?: NULL;
        case 'thumbnail_uri':
            return $uri;
        case 'thumbnail_alt_value':
            return $media->get($this->configuration['source_field'])->alt ?: parent::getMetadata($media, $name);
    }
    return parent::getMetadata($media, $name);
}

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