1 <?php
2
3 4 5
6 abstract class rex_effect_abstract
7 {
8 9 10
11 public $media;
12
13 public $params = [];
14
15 public function setMedia(rex_managed_media $media)
16 {
17 $this->media = $media;
18 }
19
20 public function setParams(array $params)
21 {
22 $this->params = $params;
23 }
24
25 abstract public function execute();
26
27 public function getName()
28 {
29 return get_class($this);
30 }
31
32 public function getParams()
33 {
34
35 }
36
37 protected function keepTransparent($des)
38 {
39 $image = $this->media;
40 if ($image->getFormat() == 'png' || $image->getFormat() == 'webp') {
41 imagealphablending($des, false);
42 imagesavealpha($des, true);
43 } elseif ($image->getFormat() == 'gif') {
44 $gdimage = $image->getImage();
45 $colorTransparent = imagecolortransparent($gdimage);
46 imagepalettecopy($gdimage, $des);
47 if ($colorTransparent > 0) {
48 imagefill($des, 0, 0, $colorTransparent);
49 imagecolortransparent($des, $colorTransparent);
50 }
51 imagetruecolortopalette($des, true, 256);
52 }
53 }
54 }
55