class AvifImageEffect
Converts an image resource to AVIF, with fallback.
Attributes
#[ImageEffect(id: "image_convert_avif", label: new TranslatableMarkup("Convert to AVIF"), description: new TranslatableMarkup("Converts an image to AVIF, with a fallback if AVIF is not supported."))]
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements \Drupal\Component\Plugin\PluginInspectionInterface, \Drupal\Component\Plugin\DerivativeInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\DependencyInjection\AutowiredInstanceTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
- class \Drupal\Core\Plugin\ConfigurablePluginBase implements \Drupal\Component\Plugin\ConfigurableInterface uses \Drupal\Core\Plugin\ConfigurableTrait extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\image\ImageEffectBase implements \Drupal\image\ImageEffectInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface extends \Drupal\Core\Plugin\ConfigurablePluginBase
- class \Drupal\image\ConfigurableImageEffectBase implements \Drupal\image\ConfigurableImageEffectInterface extends \Drupal\image\ImageEffectBase
- class \Drupal\image\Plugin\ImageEffect\ConvertImageEffect extends \Drupal\image\ConfigurableImageEffectBase
- class \Drupal\image\Plugin\ImageEffect\AvifImageEffect extends \Drupal\image\Plugin\ImageEffect\ConvertImageEffect
- class \Drupal\image\Plugin\ImageEffect\ConvertImageEffect extends \Drupal\image\ConfigurableImageEffectBase
- class \Drupal\image\ConfigurableImageEffectBase implements \Drupal\image\ConfigurableImageEffectInterface extends \Drupal\image\ImageEffectBase
- class \Drupal\image\ImageEffectBase implements \Drupal\image\ImageEffectInterface, \Drupal\Core\Plugin\ContainerFactoryPluginInterface extends \Drupal\Core\Plugin\ConfigurablePluginBase
- class \Drupal\Core\Plugin\ConfigurablePluginBase implements \Drupal\Component\Plugin\ConfigurableInterface uses \Drupal\Core\Plugin\ConfigurableTrait extends \Drupal\Core\Plugin\PluginBase
- class \Drupal\Core\Plugin\PluginBase uses \Drupal\Core\DependencyInjection\AutowiredInstanceTrait, \Drupal\Core\StringTranslation\StringTranslationTrait, \Drupal\Core\DependencyInjection\DependencySerializationTrait, \Drupal\Core\Messenger\MessengerTrait extends \Drupal\Component\Plugin\PluginBase
Expanded class hierarchy of AvifImageEffect
File
-
core/
modules/ image/ src/ Plugin/ ImageEffect/ AvifImageEffect.php, line 17
Namespace
Drupal\image\Plugin\ImageEffectView source
class AvifImageEffect extends ConvertImageEffect {
/**
* The image toolkit manager.
*
* @var \Drupal\Core\ImageToolkit\ImageToolkitManager
*/
protected ImageToolkitManager $imageToolkitManager;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) : static {
$instance = parent::create($container, $configuration, $plugin_id, $plugin_definition);
$instance->imageToolkitManager = $container->get(ImageToolkitManager::class);
return $instance;
}
/**
* {@inheritdoc}
*/
public function applyEffect(ImageInterface $image) {
// If avif is not supported fallback to the parent.
if (!$this->isAvifSupported()) {
return parent::applyEffect($image);
}
if (!$image->convert('avif')) {
$this->logger
->error('Image convert failed using the %toolkit toolkit on %path (%mimetype)', [
'%toolkit' => $image->getToolkitId(),
'%path' => $image->getSource(),
'%mimetype' => $image->getMimeType(),
]);
return FALSE;
}
return TRUE;
}
/**
* {@inheritdoc}
*/
public function getDerivativeExtension($extension) {
return $this->isAvifSupported() ? 'avif' : $this->configuration['extension'];
}
/**
* {@inheritdoc}
*/
public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
$form = parent::buildConfigurationForm($form, $form_state);
unset($form['extension']['#options']['avif']);
$form['extension']['#title'] = $this->t('Fallback format');
$form['extension']['#description'] = $this->t('Format to use if AVIF is not available.');
return $form;
}
/**
* Is AVIF supported by the image toolkit.
*/
protected function isAvifSupported() : bool {
return in_array('avif', $this->imageToolkitManager
->getDefaultToolkit()
->getSupportedExtensions());
}
}
Members
| Title Sort descending | Deprecated | Modifiers | Object type | Summary | Overriden Title | Overrides |
|---|---|---|---|---|---|---|
| AutowiredInstanceTrait::createInstanceAutowired | public static | function | Instantiates a new instance of the implementing class using autowiring. | |||
| AvifImageEffect::$imageToolkitManager | protected | property | The image toolkit manager. | |||
| AvifImageEffect::applyEffect | public | function | Applies an image effect to the image object. | Overrides ConvertImageEffect::applyEffect | ||
| AvifImageEffect::buildConfigurationForm | public | function | Form constructor. | Overrides ConvertImageEffect::buildConfigurationForm | ||
| AvifImageEffect::create | public static | function | Instantiates a new instance of the implementing class using autowiring. | Overrides ImageEffectBase::create | ||
| AvifImageEffect::getDerivativeExtension | public | function | Returns the extension of the derivative after applying this image effect. | Overrides ConvertImageEffect::getDerivativeExtension | ||
| AvifImageEffect::isAvifSupported | protected | function | Is AVIF supported by the image toolkit. | |||
| ConfigurableImageEffectBase::validateConfigurationForm | public | function | Form validation handler. | Overrides PluginFormInterface::validateConfigurationForm | 2 | |
| ConfigurableTrait::$configuration | protected | property | Configuration information passed into the plugin. | |||
| ConvertImageEffect::defaultConfiguration | public | function | Gets default configuration for this plugin. | Overrides ConfigurableTrait::defaultConfiguration | ||
| ConvertImageEffect::getSummary | public | function | Returns a render array summarizing the configuration of the image effect. | Overrides ImageEffectBase::getSummary | ||
| ConvertImageEffect::submitConfigurationForm | public | function | Form submission handler. | Overrides ConfigurableImageEffectBase::submitConfigurationForm | ||
| DependencySerializationTrait::$_entityStorages | protected | property | An array of entity type IDs keyed by the property name of their storages. | |||
| DependencySerializationTrait::$_serviceIds | protected | property | An array of service IDs keyed by property name used for serialization. | |||
| DependencySerializationTrait::__sleep | public | function | 2 | |||
| DependencySerializationTrait::__wakeup | public | function | 2 | |||
| ImageEffectBase::$logger | protected | property | A logger instance. | |||
| ImageEffectBase::$uuid | protected | property | The image effect ID. | |||
| ImageEffectBase::$weight | protected | property | The weight of the image effect. | |||
| ImageEffectBase::calculateDependencies | public | function | Calculates dependencies for the configured plugin. | Overrides DependentPluginInterface::calculateDependencies | ||
| ImageEffectBase::getConfiguration | public | function | Gets this plugin's configuration. | Overrides ConfigurableTrait::getConfiguration | ||
| ImageEffectBase::getUuid | public | function | Returns the unique ID representing the image effect. | Overrides ImageEffectInterface::getUuid | ||
| ImageEffectBase::getWeight | public | function | Returns the weight of the image effect. | Overrides ImageEffectInterface::getWeight | ||
| ImageEffectBase::label | public | function | Returns the image effect label. | Overrides ImageEffectInterface::label | ||
| ImageEffectBase::onCollectionDependencyRemoval | public | function | Informs the plugin in a collection to act on removal of dependencies. | Overrides RemovableDependentPluginInterface::onCollectionDependencyRemoval | ||
| ImageEffectBase::setConfiguration | public | function | Sets the configuration for this plugin instance. | Overrides ConfigurableTrait::setConfiguration | ||
| ImageEffectBase::setWeight | public | function | Sets the weight for this image effect. | Overrides ImageEffectInterface::setWeight | ||
| ImageEffectBase::transformDimensions | public | function | Determines the dimensions of the styled image. | Overrides ImageEffectInterface::transformDimensions | 4 | |
| ImageEffectBase::__construct | public | function | Constructs a \Drupal\Component\Plugin\PluginBase object. | Overrides ConfigurablePluginBase::__construct | ||
| MessengerTrait::$messenger | protected | property | The messenger. | 25 | ||
| MessengerTrait::messenger | public | function | Gets the messenger. | 25 | ||
| MessengerTrait::setMessenger | public | function | Sets the messenger. | |||
| PluginBase::$pluginDefinition | protected | property | The plugin implementation definition. | 1 | ||
| PluginBase::$pluginId | protected | property | The plugin ID. | |||
| PluginBase::DERIVATIVE_SEPARATOR | constant | A string which is used to separate base plugin IDs from the derivative ID. | ||||
| PluginBase::getBaseId | public | function | Gets the base_plugin_id of the plugin instance. | Overrides DerivativeInspectionInterface::getBaseId | ||
| PluginBase::getDerivativeId | public | function | Gets the derivative_id of the plugin instance. | Overrides DerivativeInspectionInterface::getDerivativeId | ||
| PluginBase::getPluginDefinition | public | function | Gets the definition of the plugin implementation. | Overrides PluginInspectionInterface::getPluginDefinition | 2 | |
| PluginBase::getPluginId | public | function | Gets the plugin ID of the plugin instance. | Overrides PluginInspectionInterface::getPluginId | ||
| PluginBase::isConfigurable | Deprecated | public | function | Determines if the plugin is configurable. | ||
| StringTranslationTrait::$stringTranslation | protected | property | The string translation service. | 3 | ||
| StringTranslationTrait::formatPlural | protected | function | Formats a string containing a count of items. | |||
| StringTranslationTrait::getNumberOfPlurals | protected | function | Returns the number of plurals supported by a given language. | |||
| StringTranslationTrait::getStringTranslation | protected | function | Gets the string translation service. | |||
| StringTranslationTrait::setStringTranslation | public | function | Sets the string translation service to use. | 2 | ||
| StringTranslationTrait::t | protected | function | Translates a string to the current language or to a given language. | 1 |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.