1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-19 20:21:32 +02:00

Simplifiy method to turn Colors into ImagickPixel

This commit is contained in:
Oliver Vogel
2023-11-05 10:56:01 +01:00
parent a81710e866
commit a468c06598

View File

@@ -4,17 +4,7 @@ namespace Intervention\Image\Drivers\Imagick\Traits;
use Imagick;
use ImagickPixel;
use Intervention\Image\Colors\Cmyk\Channels\Cyan;
use Intervention\Image\Colors\Cmyk\Channels\Key;
use Intervention\Image\Colors\Cmyk\Channels\Magenta;
use Intervention\Image\Colors\Cmyk\Channels\Yellow;
use Intervention\Image\Colors\Cmyk\Colorspace as CmykColorspace;
use Intervention\Image\Colors\Cmyk\Color as CmykColor;
use Intervention\Image\Colors\Rgb\Color as RgbColor;
use Intervention\Image\Colors\Rgb\Channels\Alpha;
use Intervention\Image\Colors\Rgb\Channels\Blue;
use Intervention\Image\Colors\Rgb\Channels\Green;
use Intervention\Image\Colors\Rgb\Channels\Red;
use Intervention\Image\Interfaces\ColorInterface;
use Intervention\Image\Interfaces\ColorspaceInterface;
@@ -59,25 +49,8 @@ trait CanHandleColors
*/
public function colorToPixel(ColorInterface $color, ColorspaceInterface $colorspace): ImagickPixel
{
$pixel = new ImagickPixel();
$color = $color->convertTo($colorspace);
switch (get_class($color)) {
case CmykColor::class:
$pixel->setColorValue(Imagick::COLOR_CYAN, $color->channel(Cyan::class)->normalize());
$pixel->setColorValue(Imagick::COLOR_MAGENTA, $color->channel(Magenta::class)->normalize());
$pixel->setColorValue(Imagick::COLOR_YELLOW, $color->channel(Yellow::class)->normalize());
$pixel->setColorValue(Imagick::COLOR_BLACK, $color->channel(Key::class)->normalize());
break;
case RgbColor::class:
$pixel->setColorValue(Imagick::COLOR_RED, $color->channel(Red::class)->normalize());
$pixel->setColorValue(Imagick::COLOR_GREEN, $color->channel(Green::class)->normalize());
$pixel->setColorValue(Imagick::COLOR_BLUE, $color->channel(Blue::class)->normalize());
$pixel->setColorValue(Imagick::COLOR_ALPHA, $color->channel(Alpha::class)->normalize());
break;
}
return $pixel;
return new ImagickPixel(
(string) $color->convertTo($colorspace)
);
}
}