diff --git a/image_effect.links.menu.yml b/image_effect.links.menu.yml new file mode 100644 index 0000000..fff3646 --- /dev/null +++ b/image_effect.links.menu.yml @@ -0,0 +1,5 @@ +image_effect.imagebgColor: + title: 'Image Effect settings' + description: 'Dynamic set Image background color' + parent: system.admin_config_development + route_name: image_effect.imagebgColor \ No newline at end of file diff --git a/image_effect.routing.yml b/image_effect.routing.yml new file mode 100644 index 0000000..e1f1274 --- /dev/null +++ b/image_effect.routing.yml @@ -0,0 +1,7 @@ +image_effect.imagebgColor: + path: '/admin/config/image-effect/imagebgcolor' + defaults: + _form: '\Drupal\image_effect\Form\OkImagebgColor' + _title: 'Set image background color' + requirements: + _role: 'authenticated' \ No newline at end of file diff --git a/src/Form/OkImagebgColor.php b/src/Form/OkImagebgColor.php new file mode 100644 index 0000000..c66fb58 --- /dev/null +++ b/src/Form/OkImagebgColor.php @@ -0,0 +1,83 @@ +config(static::SETTINGS); + + for($i=0; $i<=255; $i++){ + $options[$i] = $i; + } + $form['image_color_r'] = [ + '#type' => 'select', + '#title' => $this->t('Set image background color R'), + '#options' => $options, + '#default_value' => $config->get('image_effect_bgcolor_r') ? $config->get('image_effect_bgcolor_r') : 0, + '#required' => TRUE + ]; + $form['image_color_g'] = [ + '#type' => 'select', + '#title' => $this->t('Set image background color G'), + '#options' => $options, + '#default_value' => $config->get('image_effect_bgcolor_g') ? $config->get('image_effect_bgcolor_g') : 0, + '#required' => TRUE + ]; + $form['image_color_b'] = [ + '#type' => 'select', + '#title' => $this->t('Set image background color B'), + '#options' => $options, + '#default_value' => $config->get('image_effect_bgcolor_b') ? $config->get('image_effect_bgcolor_b') : 0, + '#required' => TRUE + ]; + + return parent::buildForm($form, $form_state); + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, FormStateInterface $form_state) { + $this->configFactory->getEditable(static::SETTINGS) + ->set('image_effect_bgcolor_r', $form_state->getValue('image_color_r')) + ->set('image_effect_bgcolor_g', $form_state->getValue('image_color_g')) + ->set('image_effect_bgcolor_b', $form_state->getValue('image_color_b')) + ->save(); + + parent::submitForm($form, $form_state); + } + +} diff --git a/src/Plugin/ImageToolkit/Operation/gd/AdvanceResize.php b/src/Plugin/ImageToolkit/Operation/gd/AdvanceResize.php index 5d1d770..6f6555a 100644 --- a/src/Plugin/ImageToolkit/Operation/gd/AdvanceResize.php +++ b/src/Plugin/ImageToolkit/Operation/gd/AdvanceResize.php @@ -80,7 +80,10 @@ class AdvanceResize extends GDImageToolkitOperationBase { 'is_temp' => TRUE, ]; if ($this->getToolkit()->apply('create_new', $data)) { - $backgroundColor = imagecolorallocate($this->getToolkit()->getResource(), 255, 255, 255); + $rvalue = \Drupal::config('image_effect.imagebgColor')->get('image_effect_bgcolor_r'); + $gvalue = \Drupal::config('image_effect.imagebgColor')->get('image_effect_bgcolor_g'); + $bvalue = \Drupal::config('image_effect.imagebgColor')->get('image_effect_bgcolor_b'); + $backgroundColor = imagecolorallocate($this->getToolkit()->getResource(), $rvalue, $gvalue, $bvalue); imagefill($this->getToolkit()->getResource(), 0, 0, $backgroundColor); if (imagecopyresampled($this->getToolkit()->getResource(), $original_resource, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h)) { imagedestroy($original_resource);