class ReflectImageEffect in ImageCache Reflect 8
Creates a reflection-like effect on an image resource.
Plugin annotation
@ImageEffect(
id = "imagecache reflect",
label = @Translation("Reflect"),
description = @Translation("Creates a reflection-like image effect.")
)
Hierarchy
- class \Drupal\Component\Plugin\PluginBase implements DerivativeInspectionInterface, PluginInspectionInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
- class \Drupal\image\ImageEffectBase implements ContainerFactoryPluginInterface, ImageEffectInterface
- class \Drupal\imagecache_reflect\Plugin\ImageEffect\ReflectImageEffect implements ConfigurableImageEffectInterface
- class \Drupal\image\ImageEffectBase implements ContainerFactoryPluginInterface, ImageEffectInterface
- class \Drupal\Core\Plugin\PluginBase uses DependencySerializationTrait, MessengerTrait, StringTranslationTrait
Expanded class hierarchy of ReflectImageEffect
File
- lib/
Drupal/ imagecache_reflect/ Plugin/ ImageEffect/ ReflectImageEffect.php, line 26 - Contains \Drupal\imagecache_reflect\Plugin\ImageEffect\ReflectImageEffect.
Namespace
Drupal\imagecache_reflect\Plugin\ImageEffectView source
class ReflectImageEffect extends ImageEffectBase implements ConfigurableImageEffectInterface {
/**
* {@inheritdoc}
*/
public function applyEffect(ImageInterface $image) {
// Apply operation.
// @todo: Convert this operation to a toolkit plugin.
// @todo: Add support for imagemagick.
if (!GDToolkitReflect::reflect($image, $this->configuration)) {
watchdog('image', 'Image reflect failed using the %toolkit toolkit on %path (%mimetype, %configuration)', array(
'%toolkit' => $image
->getToolkitId(),
'%path' => $image
->getSource(),
'%mimetype' => $image
->getMimeType(),
'%configuration' => 'Size: ' . $this->configuration['size'] . ', Position: ' . $this->configuration['position'],
), WATCHDOG_ERROR);
return FALSE;
}
return TRUE;
}
/**
* {@inheritdoc}
*/
public function getSummary() {
return array(
'#theme' => 'imagecache_reflect_summary',
'#data' => $this->configuration,
);
}
/**
* {@inheritdoc}
*/
public function defaultConfiguration() {
return array(
'bgcolor' => '#FFFFFF',
'position' => 'bottom',
'transparency' => FALSE,
'size' => '50%',
);
}
/**
* {@inheritdoc}
*/
public function getForm() {
$form['bgcolor'] = array(
'#type' => 'textfield',
'#title' => t('Color'),
'#description' => t('The color to use for the reflection background. Use web-style hex colors. e.g.) #FF6633. May be blank.'),
'#default_value' => $this->configuration['bgcolor'],
'#size' => 7,
'#max_length' => 7,
'#element_validate' => array(
array(
$this,
'validateColor',
),
),
);
$form['transparency'] = array(
'#type' => 'checkbox',
'#title' => t('transparency source image'),
'#default_value' => $this->configuration['transparency'],
'#description' => t('If the image that you are reflecting uses alpha transparency, optionally use a much slower algorithm for creating the images, but one that will preserve the transparency.'),
);
$form['position'] = array(
'#type' => 'radios',
'#title' => t('Position'),
'#default_value' => $this->configuration['position'],
'#options' => array(
'top' => t('Top'),
'right' => t('Right'),
'bottom' => t('Bottom'),
'left' => t('Left'),
),
'#description' => t('The position of the image reflection. Default is bottom.'),
'#required' => TRUE,
);
$form['size'] = array(
'#type' => 'textfield',
'#title' => t('Size'),
'#default_value' => $this->configuration['size'],
'#description' => t('The size of the reflection in pixels. You may append % to the integer to represent percentages.'),
'#required' => TRUE,
'#element_validate' => array(
array(
$this,
'validateSize',
),
),
);
return $form;
}
/**
* Validates to ensure a hexadecimal color value or empty.
*
* @todo Use drupal 8 validation API? Symfony has regex validator.
*/
public static function validateColor(array $element, array &$form_state) {
if (!preg_match('/^#[0-9A-F]{3}([0-9A-F]{3})?$|^$/', $element['#value'])) {
\Drupal::formBuilder()
->setError($element, \t('!name must be a hexadecimal color value or empty.', array(
'!name' => $element['#title'],
)));
}
}
/**
* Validates to ensure a percentage or positive integer.
*
* @todo Use drupal 8 validation API? Symfony has regex validator.
*/
public static function validateSize(array $element, array &$form_state) {
if (!preg_match('/^([0-9]{1,2}|100)%$|^([0-9]{1,3})$/', $element['#value'])) {
\Drupal::formBuilder()
->setError($element, \t('!name must be a percentage from 1 to 100 or a positive integer 3 digits or less.', array(
'!name' => $element['#title'],
)));
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
ImageEffectBase:: |
protected | property | A logger instance. | |
ImageEffectBase:: |
protected | property | The image effect ID. | |
ImageEffectBase:: |
protected | property | The weight of the image effect. | |
ImageEffectBase:: |
public | function |
Calculates dependencies for the configured plugin. Overrides DependentPluginInterface:: |
|
ImageEffectBase:: |
public static | function |
Creates an instance of the plugin. Overrides ContainerFactoryPluginInterface:: |
|
ImageEffectBase:: |
public | function |
Gets this plugin's configuration. Overrides ConfigurableInterface:: |
|
ImageEffectBase:: |
public | function |
Returns the extension of the derivative after applying this image effect. Overrides ImageEffectInterface:: |
1 |
ImageEffectBase:: |
public | function |
Returns the unique ID representing the image effect. Overrides ImageEffectInterface:: |
|
ImageEffectBase:: |
public | function |
Returns the weight of the image effect. Overrides ImageEffectInterface:: |
|
ImageEffectBase:: |
public | function |
Returns the image effect label. Overrides ImageEffectInterface:: |
|
ImageEffectBase:: |
public | function |
Sets the configuration for this plugin instance. Overrides ConfigurableInterface:: |
|
ImageEffectBase:: |
public | function |
Sets the weight for this image effect. Overrides ImageEffectInterface:: |
|
ImageEffectBase:: |
public | function |
Determines the dimensions of the styled image. Overrides ImageEffectInterface:: |
4 |
ImageEffectBase:: |
public | function |
Constructs a \Drupal\Component\Plugin\PluginBase object. Overrides PluginBase:: |
|
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
PluginBase:: |
protected | property | Configuration information passed into the plugin. | 1 |
PluginBase:: |
protected | property | The plugin implementation definition. | 1 |
PluginBase:: |
protected | property | The plugin_id. | |
PluginBase:: |
constant | A string which is used to separate base plugin IDs from the derivative ID. | ||
PluginBase:: |
public | function |
Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface:: |
|
PluginBase:: |
public | function |
Gets the definition of the plugin implementation. Overrides PluginInspectionInterface:: |
3 |
PluginBase:: |
public | function |
Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface:: |
|
PluginBase:: |
public | function | Determines if the plugin is configurable. | |
PluginFormInterface:: |
public | function | Form constructor. | 36 |
PluginFormInterface:: |
public | function | Form submission handler. | 32 |
PluginFormInterface:: |
public | function | Form validation handler. | 18 |
ReflectImageEffect:: |
public | function |
Applies an image effect to the image object. Overrides ImageEffectInterface:: |
|
ReflectImageEffect:: |
public | function |
Gets default configuration for this plugin. Overrides ImageEffectBase:: |
|
ReflectImageEffect:: |
public | function | ||
ReflectImageEffect:: |
public | function |
Returns a render array summarizing the configuration of the image effect. Overrides ImageEffectBase:: |
|
ReflectImageEffect:: |
public static | function | Validates to ensure a hexadecimal color value or empty. | |
ReflectImageEffect:: |
public static | function | Validates to ensure a percentage or positive integer. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. |