Mercurial > hg > cmmr2012-drupal-site
comparison core/modules/image/src/Plugin/ImageEffect/ConvertImageEffect.php @ 0:c75dbcec494b
Initial commit from drush-created site
author | Chris Cannam |
---|---|
date | Thu, 05 Jul 2018 14:24:15 +0000 |
parents | |
children | a9cd425dd02b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c75dbcec494b |
---|---|
1 <?php | |
2 | |
3 namespace Drupal\image\Plugin\ImageEffect; | |
4 | |
5 use Drupal\Component\Utility\Unicode; | |
6 use Drupal\Core\Form\FormStateInterface; | |
7 use Drupal\Core\Image\ImageInterface; | |
8 use Drupal\image\ConfigurableImageEffectBase; | |
9 | |
10 /** | |
11 * Converts an image resource. | |
12 * | |
13 * @ImageEffect( | |
14 * id = "image_convert", | |
15 * label = @Translation("Convert"), | |
16 * description = @Translation("Converts an image between extensions (e.g. from PNG to JPEG).") | |
17 * ) | |
18 */ | |
19 class ConvertImageEffect extends ConfigurableImageEffectBase { | |
20 | |
21 /** | |
22 * {@inheritdoc} | |
23 */ | |
24 public function applyEffect(ImageInterface $image) { | |
25 if (!$image->convert($this->configuration['extension'])) { | |
26 $this->logger->error('Image convert failed using the %toolkit toolkit on %path (%mimetype)', ['%toolkit' => $image->getToolkitId(), '%path' => $image->getSource(), '%mimetype' => $image->getMimeType()]); | |
27 return FALSE; | |
28 } | |
29 return TRUE; | |
30 } | |
31 | |
32 /** | |
33 * {@inheritdoc} | |
34 */ | |
35 public function getDerivativeExtension($extension) { | |
36 return $this->configuration['extension']; | |
37 } | |
38 | |
39 /** | |
40 * {@inheritdoc} | |
41 */ | |
42 public function getSummary() { | |
43 $summary = [ | |
44 '#markup' => Unicode::strtoupper($this->configuration['extension']), | |
45 ]; | |
46 $summary += parent::getSummary(); | |
47 | |
48 return $summary; | |
49 } | |
50 | |
51 /** | |
52 * {@inheritdoc} | |
53 */ | |
54 public function defaultConfiguration() { | |
55 return [ | |
56 'extension' => NULL, | |
57 ]; | |
58 } | |
59 | |
60 /** | |
61 * {@inheritdoc} | |
62 */ | |
63 public function buildConfigurationForm(array $form, FormStateInterface $form_state) { | |
64 $extensions = \Drupal::service('image.toolkit.manager')->getDefaultToolkit()->getSupportedExtensions(); | |
65 $options = array_combine( | |
66 $extensions, | |
67 array_map(['\Drupal\Component\Utility\Unicode', 'strtoupper'], $extensions) | |
68 ); | |
69 $form['extension'] = [ | |
70 '#type' => 'select', | |
71 '#title' => t('Extension'), | |
72 '#default_value' => $this->configuration['extension'], | |
73 '#required' => TRUE, | |
74 '#options' => $options, | |
75 ]; | |
76 return $form; | |
77 } | |
78 | |
79 /** | |
80 * {@inheritdoc} | |
81 */ | |
82 public function submitConfigurationForm(array &$form, FormStateInterface $form_state) { | |
83 parent::submitConfigurationForm($form, $form_state); | |
84 $this->configuration['extension'] = $form_state->getValue('extension'); | |
85 } | |
86 | |
87 } |