X-Git-Url: http://www.aleph1.co.uk/gitweb/?a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Fimage%2Fsrc%2FPlugin%2FImageEffect%2FResizeImageEffect.php;fp=web%2Fcore%2Fmodules%2Fimage%2Fsrc%2FPlugin%2FImageEffect%2FResizeImageEffect.php;h=dba34298def9522a3f4fc17cb423baed8cdfe19f;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/core/modules/image/src/Plugin/ImageEffect/ResizeImageEffect.php b/web/core/modules/image/src/Plugin/ImageEffect/ResizeImageEffect.php new file mode 100644 index 000000000..dba34298d --- /dev/null +++ b/web/core/modules/image/src/Plugin/ImageEffect/ResizeImageEffect.php @@ -0,0 +1,96 @@ +resize($this->configuration['width'], $this->configuration['height'])) { + $this->logger->error('Image resize 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 transformDimensions(array &$dimensions, $uri) { + // The new image will have the exact dimensions defined for the effect. + $dimensions['width'] = $this->configuration['width']; + $dimensions['height'] = $this->configuration['height']; + } + + /** + * {@inheritdoc} + */ + public function getSummary() { + $summary = [ + '#theme' => 'image_resize_summary', + '#data' => $this->configuration, + ]; + $summary += parent::getSummary(); + + return $summary; + } + + /** + * {@inheritdoc} + */ + public function defaultConfiguration() { + return [ + 'width' => NULL, + 'height' => NULL, + ]; + } + + /** + * {@inheritdoc} + */ + public function buildConfigurationForm(array $form, FormStateInterface $form_state) { + $form['width'] = [ + '#type' => 'number', + '#title' => t('Width'), + '#default_value' => $this->configuration['width'], + '#field_suffix' => ' ' . t('pixels'), + '#required' => TRUE, + '#min' => 1, + ]; + $form['height'] = [ + '#type' => 'number', + '#title' => t('Height'), + '#default_value' => $this->configuration['height'], + '#field_suffix' => ' ' . t('pixels'), + '#required' => TRUE, + '#min' => 1, + ]; + return $form; + } + + /** + * {@inheritdoc} + */ + public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { + parent::submitConfigurationForm($form, $form_state); + + $this->configuration['height'] = $form_state->getValue('height'); + $this->configuration['width'] = $form_state->getValue('width'); + } + +}