From 58c0f5f71724840c1cf7e00ca0cc5bb33bd6e024 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Thu, 4 Mar 2021 11:30:17 +0100 Subject: [PATCH] =?UTF-8?q?Die=20Transformung=20von=20CMYK=20zu=20RGB=20er?= =?UTF-8?q?folgt=20=C3=BCber=20HSV.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CyanMagentaYellowKeyTransformer.php | 15 +---- .../HueSaturationValueToRedGreenBlue.php | 56 +++++++++++++++++++ .../CyanMagentaYellowKeyTransformerTest.php | 2 - 3 files changed, 58 insertions(+), 15 deletions(-) create mode 100644 src/Transformer/Utilities/HueSaturationValueToRedGreenBlue.php diff --git a/src/Transformer/CyanMagentaYellowKeyTransformer.php b/src/Transformer/CyanMagentaYellowKeyTransformer.php index 4b79b7c..664a9a2 100644 --- a/src/Transformer/CyanMagentaYellowKeyTransformer.php +++ b/src/Transformer/CyanMagentaYellowKeyTransformer.php @@ -24,19 +24,8 @@ class CyanMagentaYellowKeyTransformer implements ColorModelTransformInterface public function toRedGreenBlue(): RedGreenBlue { - $cyan = $this->color->getCyan(); - $magenta = $this->color->getMagenta(); - $yellow = $this->color->getYellow(); - $key = $this->color->getKey(); - - $red = 0; - $green = 0; - $blue = 0; - - return (new RedGreenBlue()) - ->setRed($red) - ->setGreen($green) - ->setBlue($blue); + $hsv_color = (new Utilities\CyanMagentaYellowKeyToHueSaturationValue($this->color))->convert(); + return (new Utilities\HueSaturationValueToRedGreenBlue($hsv_color))->convert(); } public function toCyanMagentaYellowKey(): CyanMagentaYellowKey diff --git a/src/Transformer/Utilities/HueSaturationValueToRedGreenBlue.php b/src/Transformer/Utilities/HueSaturationValueToRedGreenBlue.php new file mode 100644 index 0000000..36a6e13 --- /dev/null +++ b/src/Transformer/Utilities/HueSaturationValueToRedGreenBlue.php @@ -0,0 +1,56 @@ +hue = $from_color->getHue(); + $this->saturation = $from_color->getSaturation(); + $this->value = $from_color->getValue(); + } + + public function convert(): RedGreenBlue + { + $this->processConvert(); + + return (new RedGreenBlue()) + ->setRed($this->red) + ->setGreen($this->green) + ->setBlue($this->blu); + } + + + protected function processConvert(): void + { + + } + +} \ No newline at end of file diff --git a/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php b/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php index 06fb2fb..bc43ea4 100644 --- a/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php +++ b/tests/unit/Transformer/CyanMagentaYellowKeyTransformerTest.php @@ -222,8 +222,6 @@ class CyanMagentaYellowKeyTransformerTest extends Unit */ public function testToRedGreenBlue(array $cmyk, array $rgb) { - $this->markTestSkipped('Das Verhalten muss über HSL erforscht werden.'); - $this->color = $this->make(CyanMagentaYellowKey::class, $cmyk); $transformer = new CyanMagentaYellowKeyTransformer($this->color);