You are here

protected function Textimage::createDerivativeFromImage in Textimage 8.3

Same name and namespace in other branches
  1. 8.4 src/Textimage.php \Drupal\textimage\Textimage::createDerivativeFromImage()

Create the derivative image from the Image object.

@todo (core) remove if #2359443 gets in

1 call to Textimage::createDerivativeFromImage()
Textimage::buildImage in src/Textimage.php
Build the image via core ImageStyle::createDerivative() method.

File

src/Textimage.php, line 794

Class

Textimage
Provides a Textimage.

Namespace

Drupal\textimage

Code

protected function createDerivativeFromImage($style, $image, $derivative_uri) {

  // Get the folder for the final location of this style.
  $directory = $this->fileSystem
    ->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)) {
    $this->logger
      ->error('Failed to create Textimage directory: %directory', [
      '%directory' => $directory,
    ]);
    return FALSE;
  }
  if (!$image
    ->isValid()) {
    if ($image
      ->getSource()) {
      $this->logger
        ->error("Invalid image at '%image'.", [
        '%image' => $image
          ->getSource(),
      ]);
    }
    else {
      $this->logger
        ->error("Invalid source image.");
    }
    return FALSE;
  }
  foreach ($style
    ->getEffects() as $effect) {
    $effect
      ->applyEffect($image);
  }
  if (!$image
    ->save($derivative_uri)) {
    if (file_exists($derivative_uri)) {
      $this->logger
        ->error('Cached image file %destination already exists. There may be an issue with your rewrite configuration.', [
        '%destination' => $derivative_uri,
      ]);
    }
    return FALSE;
  }
  return TRUE;
}