diff --git a/src/Drivers/Gd/ImageFactory.php b/src/Drivers/Gd/ImageFactory.php index 0127f36c..e5a0990c 100644 --- a/src/Drivers/Gd/ImageFactory.php +++ b/src/Drivers/Gd/ImageFactory.php @@ -11,6 +11,9 @@ class ImageFactory implements FactoryInterface public function newImage(int $width, int $height): ImageInterface { $gd = imagecreatetruecolor($width, $height); + $color = imagecolorallocatealpha($gd, 0, 0, 0, 127); + imagefill($gd, 0, 0, $color); + imagesavealpha($gd, true); return new Image(new Collection([ new Frame($gd) diff --git a/src/Drivers/Gd/Modifiers/FillModifier.php b/src/Drivers/Gd/Modifiers/FillModifier.php new file mode 100644 index 00000000..9135653b --- /dev/null +++ b/src/Drivers/Gd/Modifiers/FillModifier.php @@ -0,0 +1,31 @@ +filling = $filling; + } + + public function apply(ImageInterface $image): ImageInterface + { + foreach ($image as $frame) { + $this->blurFrame($frame); + } + + return $image; + } + + protected function blurFrame(FrameInterface $frame): void + { + for ($i = 0; $i < $this->amount; $i++) { + imagefilter($frame->getCore(), IMG_FILTER_GAUSSIAN_BLUR); + } + } +} diff --git a/src/Drivers/Imagick/ImageFactory.php b/src/Drivers/Imagick/ImageFactory.php new file mode 100644 index 00000000..3aaba6a7 --- /dev/null +++ b/src/Drivers/Imagick/ImageFactory.php @@ -0,0 +1,26 @@ +newImage($width, $height, new ImagickPixel('rgba(0, 0, 0, 0)'), 'png'); + $imagick->setType(Imagick::IMGTYPE_UNDEFINED); + $imagick->setImageType(Imagick::IMGTYPE_UNDEFINED); + $imagick->setColorspace(Imagick::COLORSPACE_UNDEFINED); + + return new Image(new Collection([ + new Frame($imagick) + ])); + } +}