public ImageStyle::createDerivative($original_uri, $derivative_uri)
Creates a new image derivative based on this image style.
Generates an image derivative applying all image effects and saving the resulting image.
Parameters
string $original_uri: Original image file URI.
string $derivative_uri: Derivative image file URI.
Return value
bool TRUE if an image derivative was generated, or FALSE if the image derivative could not be generated.
Overrides ImageStyleInterface::createDerivative
File
- core/modules/image/src/Entity/ImageStyle.php, line 276
Class
- ImageStyle
- Defines an image style configuration entity.
Namespace
Drupal\image\Entity
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public function createDerivative( $original_uri , $derivative_uri ) { // If the source file doesn't exist, return FALSE without creating folders. $image = \Drupal::service( 'image.factory' )->get( $original_uri ); if (! $image ->isValid()) { return FALSE; } // Get the folder for the final location of this style. $directory = drupal_dirname( $derivative_uri ); // Build the destination folder tree if it doesn't already exist. if (!file_prepare_directory( $directory , FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS)) { \Drupal::logger( 'image' )->error( 'Failed to create style directory: %directory' , array ( '%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.' , array ( '%destination' => $derivative_uri )); } return FALSE; } return TRUE; } |
Please login to continue.