function ImageStyle::createDerivative
Same name in other branches
- 8.9.x core/modules/image/src/Entity/ImageStyle.php \Drupal\image\Entity\ImageStyle::createDerivative()
- 10 core/modules/image/src/Entity/ImageStyle.php \Drupal\image\Entity\ImageStyle::createDerivative()
- 11.x core/modules/image/src/Entity/ImageStyle.php \Drupal\image\Entity\ImageStyle::createDerivative()
Overrides ImageStyleInterface::createDerivative
File
-
core/
modules/ image/ src/ Entity/ ImageStyle.php, line 312
Class
- ImageStyle
- Defines an image style configuration entity.
Namespace
Drupal\image\EntityCode
public function createDerivative($original_uri, $derivative_uri) {
// If the source file doesn't exist, return FALSE without creating folders.
$image = $this->getImageFactory()
->get($original_uri);
if (!$image->isValid()) {
return FALSE;
}
// Get the folder for the final location of this style.
$directory = \Drupal::service('file_system')->dirname($derivative_uri);
// Build the destination folder tree if it doesn't already exist.
if (!\Drupal::service('file_system')->prepareDirectory($directory, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS)) {
\Drupal::logger('image')->error('Failed to create style directory: %directory', [
'%directory' => $directory,
]);
return FALSE;
}
foreach ($this->getEffects() as $effect) {
$effect->applyEffect($image);
}
if (!$image->save($derivative_uri)) {
if (file_exists($derivative_uri)) {
\Drupal::logger('image')->error('Cached image file %destination already exists. There may be an issue with your rewrite configuration.', [
'%destination' => $derivative_uri,
]);
}
return FALSE;
}
return TRUE;
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.