configuration['width']; $height = (int) $this->configuration['height']; $scale = max($width / $image->getWidth(), $height / $image->getHeight()); [$x, $y] = explode('-', $this->configuration['anchor']); $x = Image::getKeywordOffset($x, (int) round($image->getWidth() * $scale), $width); $y = Image::getKeywordOffset($y, (int) round($image->getHeight() * $scale), $height); if (!$image->apply('scale_and_crop', ['x' => $x, 'y' => $y, 'width' => $width, 'height' => $height])) { $this->logger->error('Image scale and crop failed using the %toolkit toolkit on %path (%mimetype, %dimensions)', ['%toolkit' => $image->getToolkitId(), '%path' => $image->getSource(), '%mimetype' => $image->getMimeType(), '%dimensions' => $image->getWidth() . 'x' . $image->getHeight()]); return FALSE; } return TRUE; } /** * {@inheritdoc} */ public function getSummary() { $summary = [ '#theme' => 'image_scale_and_crop_summary', '#data' => $this->configuration, ]; $summary += parent::getSummary(); return $summary; } }