diff --git a/src/NaturallyColorModels/AbstractColorModel.php b/src/NaturallyColorModels/AbstractColorModel.php deleted file mode 100644 index faf7af4..0000000 --- a/src/NaturallyColorModels/AbstractColorModel.php +++ /dev/null @@ -1,71 +0,0 @@ - 100) { - throw new InvalidArgumentException('Ein Wert größer als 100% ist nicht definierbar.'); - } - if ($value < 0) { - throw new InvalidArgumentException('Ein Wert kleiner als 0% ist nicht definierbar.'); - } - } - - protected function asGradValue(float $value): int - { - return intval($value * 360); - } - - protected function fromGradValue(int $value): float - { - return $value / 360.0; - } - - protected function checkGradValue(int $value): void - { - if ($value > 360) { - throw new InvalidArgumentException('Ein Wert größer als 360° ist nicht definierbar.'); - } - if ($value < 0) { - throw new InvalidArgumentException('Ein Wert kleiner als 0° ist nicht definierbar.'); - } - } - - protected function asHexadecimalValue(float $value): int - { - return intval($value * 0xFF); - } - - protected function fromHexadecimalValue(int $value): float - { - return $value / 0xFF; - } - - protected function checkHexadecimalValue(int $value): void - { - if ($value > 0xFF) { - throw new InvalidArgumentException('Ein Wert größer als "0xFF" ist nicht definierbar.'); - } - if ($value < 0) { - throw new InvalidArgumentException('Ein Wert kleiner als "0x00" ist nicht definierbar.'); - } - } - -} \ No newline at end of file diff --git a/src/NaturallyColorModels/CyanMagentaYellowKey.php b/src/NaturallyColorModels/CyanMagentaYellowKey.php index 44a5f38..1df9034 100644 --- a/src/NaturallyColorModels/CyanMagentaYellowKey.php +++ b/src/NaturallyColorModels/CyanMagentaYellowKey.php @@ -10,14 +10,16 @@ use TorstenHettstedt\Colors\ColorModels\CyanMagentaYellowKey as PureCyanMagentaY * Definition des allgemeinen CMYK-Farbraumes. Die Werte für die eigenschaften sind reelle Zahlen von 0 bis einschließlich 1. * Ohne Änderung der Eigenschaften wird die Farbe *weiß* dargestellt. */ -class CyanMagentaYellowKey extends AbstractColorModel +class CyanMagentaYellowKey { /** @var PureCyanMagentaYellowKey : Standard-Color-Modell */ protected PureCyanMagentaYellowKey $pureColor; + protected Helper\PercentValues $percentValuesHelper; #[Pure] public function __construct() { $this->pureColor = new PureCyanMagentaYellowKey(); + $this->percentValuesHelper = new Helper\PercentValues(); } /** @@ -25,7 +27,7 @@ class CyanMagentaYellowKey extends AbstractColorModel */ #[Pure] public function getCyan(): int { - return $this->asPercentValue($this->pureColor->getCyan()); + return $this->percentValuesHelper->asPercentValue($this->pureColor->getCyan()); } /** @@ -34,8 +36,8 @@ class CyanMagentaYellowKey extends AbstractColorModel */ public function setCyan(int $cyan): CyanMagentaYellowKey { - $this->checkPercentValue($cyan); - $this->pureColor->setCyan($this->fromPercentValue($cyan)); + $this->percentValuesHelper->checkPercentValue($cyan); + $this->pureColor->setCyan($this->percentValuesHelper->fromPercentValue($cyan)); return $this; } @@ -44,7 +46,7 @@ class CyanMagentaYellowKey extends AbstractColorModel */ #[Pure] public function getMagenta(): int { - return $this->asPercentValue($this->pureColor->getMagenta()); + return $this->percentValuesHelper->asPercentValue($this->pureColor->getMagenta()); } /** @@ -53,8 +55,8 @@ class CyanMagentaYellowKey extends AbstractColorModel */ public function setMagenta(int $magenta): CyanMagentaYellowKey { - $this->checkPercentValue($magenta); - $this->pureColor->setMagenta($this->fromPercentValue($magenta)); + $this->percentValuesHelper->checkPercentValue($magenta); + $this->pureColor->setMagenta($this->percentValuesHelper->fromPercentValue($magenta)); return $this; } @@ -63,7 +65,7 @@ class CyanMagentaYellowKey extends AbstractColorModel */ #[Pure] public function getYellow(): int { - return $this->asPercentValue($this->pureColor->getYellow()); + return $this->percentValuesHelper->asPercentValue($this->pureColor->getYellow()); } /** @@ -72,8 +74,8 @@ class CyanMagentaYellowKey extends AbstractColorModel */ public function setYellow(int $yellow): CyanMagentaYellowKey { - $this->checkPercentValue($yellow); - $this->pureColor->setYellow($this->fromPercentValue($yellow)); + $this->percentValuesHelper->checkPercentValue($yellow); + $this->pureColor->setYellow($this->percentValuesHelper->fromPercentValue($yellow)); return $this; } @@ -82,7 +84,7 @@ class CyanMagentaYellowKey extends AbstractColorModel */ #[Pure] public function getKey(): int { - return $this->asPercentValue($this->pureColor->getKey()); + return $this->percentValuesHelper->asPercentValue($this->pureColor->getKey()); } /** @@ -91,8 +93,8 @@ class CyanMagentaYellowKey extends AbstractColorModel */ public function setKey(int $key): CyanMagentaYellowKey { - $this->checkPercentValue($key); - $this->pureColor->setKey($this->fromPercentValue($key)); + $this->percentValuesHelper->checkPercentValue($key); + $this->pureColor->setKey($this->percentValuesHelper->fromPercentValue($key)); return $this; } diff --git a/src/NaturallyColorModels/Helper/GradValues.php b/src/NaturallyColorModels/Helper/GradValues.php new file mode 100644 index 0000000..75e9c0b --- /dev/null +++ b/src/NaturallyColorModels/Helper/GradValues.php @@ -0,0 +1,31 @@ + 360) { + throw new InvalidArgumentException('Ein Wert größer als 360° ist nicht definierbar.'); + } + if ($value < 0) { + throw new InvalidArgumentException('Ein Wert kleiner als 0° ist nicht definierbar.'); + } + } + +} \ No newline at end of file diff --git a/src/NaturallyColorModels/Helper/HexadecimalValues.php b/src/NaturallyColorModels/Helper/HexadecimalValues.php new file mode 100644 index 0000000..9477e39 --- /dev/null +++ b/src/NaturallyColorModels/Helper/HexadecimalValues.php @@ -0,0 +1,31 @@ + 0xFF) { + throw new InvalidArgumentException('Ein Wert größer als "0xFF" ist nicht definierbar.'); + } + if ($value < 0) { + throw new InvalidArgumentException('Ein Wert kleiner als "0x00" ist nicht definierbar.'); + } + } + +} \ No newline at end of file diff --git a/src/NaturallyColorModels/Helper/PercentValues.php b/src/NaturallyColorModels/Helper/PercentValues.php new file mode 100644 index 0000000..b9350fa --- /dev/null +++ b/src/NaturallyColorModels/Helper/PercentValues.php @@ -0,0 +1,31 @@ + 100) { + throw new InvalidArgumentException('Ein Wert größer als 100% ist nicht definierbar.'); + } + if ($value < 0) { + throw new InvalidArgumentException('Ein Wert kleiner als 0% ist nicht definierbar.'); + } + } + +} \ No newline at end of file diff --git a/src/NaturallyColorModels/HueSaturationValue.php b/src/NaturallyColorModels/HueSaturationValue.php index 9c30a63..0870523 100644 --- a/src/NaturallyColorModels/HueSaturationValue.php +++ b/src/NaturallyColorModels/HueSaturationValue.php @@ -11,14 +11,18 @@ use TorstenHettstedt\Colors\ColorModels\HueSaturationValue as PureHueSaturationV * Definition des allgemeinen HSV-Farbraumes. Die Werte für die Eigenschaften sind reelle Zahlen von 0 bis einschließlich 1. * Ohne Änderung der Eigenschaften wird die Farbe *weiß* dargestellt. */ -class HueSaturationValue extends AbstractColorModel +class HueSaturationValue { /** @var PureHueSaturationValue : Standard-Color-Modell */ protected PureHueSaturationValue $pureColor; + protected Helper\PercentValues $percentValuesHelper; + protected Helper\GradValues $gradValuesHelper; #[Pure] public function __construct() { $this->pureColor = new PureHueSaturationValue(); + $this->percentValuesHelper = new Helper\PercentValues(); + $this->gradValuesHelper = new Helper\GradValues(); } /** @@ -26,7 +30,7 @@ class HueSaturationValue extends AbstractColorModel */ #[Pure] public function getHue(): int { - return $this->asGradValue($this->pureColor->getHue()); + return $this->gradValuesHelper->asGradValue($this->pureColor->getHue()); } /** @@ -35,8 +39,8 @@ class HueSaturationValue extends AbstractColorModel */ public function setHue(int $hue): HueSaturationValue { - $this->checkGradValue($hue); - $this->pureColor->setHue($this->fromGradValue($hue)); + $this->gradValuesHelper->checkGradValue($hue); + $this->pureColor->setHue($this->gradValuesHelper->fromGradValue($hue)); return $this; } @@ -45,7 +49,7 @@ class HueSaturationValue extends AbstractColorModel */ #[Pure] public function getSaturation(): int { - return $this->asPercentValue($this->pureColor->getSaturation()); + return $this->percentValuesHelper->asPercentValue($this->pureColor->getSaturation()); } /** @@ -54,8 +58,8 @@ class HueSaturationValue extends AbstractColorModel */ public function setSaturation(int $saturation): HueSaturationValue { - $this->checkPercentValue($saturation); - $this->pureColor->setSaturation($this->fromPercentValue($saturation)); + $this->percentValuesHelper->checkPercentValue($saturation); + $this->pureColor->setSaturation($this->percentValuesHelper->fromPercentValue($saturation)); return $this; } @@ -64,7 +68,7 @@ class HueSaturationValue extends AbstractColorModel */ #[Pure] public function getValue(): int { - return $this->asPercentValue($this->pureColor->getValue()); + return $this->percentValuesHelper->asPercentValue($this->pureColor->getValue()); } /** @@ -73,8 +77,8 @@ class HueSaturationValue extends AbstractColorModel */ public function setValue(int $value): HueSaturationValue { - $this->checkPercentValue($value); - $this->pureColor->setValue($this->fromPercentValue($value)); + $this->percentValuesHelper->checkPercentValue($value); + $this->pureColor->setValue($this->percentValuesHelper->fromPercentValue($value)); return $this; } diff --git a/src/NaturallyColorModels/RedGreenBlue.php b/src/NaturallyColorModels/RedGreenBlue.php index 9769489..852b151 100644 --- a/src/NaturallyColorModels/RedGreenBlue.php +++ b/src/NaturallyColorModels/RedGreenBlue.php @@ -9,14 +9,16 @@ use TorstenHettstedt\Colors\ColorModels\RedGreenBlue as PureRedGreenBlue; * Definition des allgemeinen RGB-Farbraumes. Die Werte für die eigenschaften sind reelle Zahlen von 0 bis einschließlich 1. * Ohne Änderung der Eigenschaften wird die Farbe *weiß* dargestellt. */ -class RedGreenBlue extends AbstractColorModel +class RedGreenBlue { /** @var PureRedGreenBlue : Standard-Color-Modell */ - protected PureRedGreenBlue $pureColor; + protected PureRedGreenBlue $pureColor; + protected Helper\HexadecimalValues $hexadecimalValuesHelper; #[Pure] public function __construct() { $this->pureColor = new PureRedGreenBlue(); + $this->hexadecimalValuesHelper = new Helper\HexadecimalValues(); } /** @@ -24,7 +26,7 @@ class RedGreenBlue extends AbstractColorModel */ #[Pure] public function getRed(): int { - return $this->asHexadecimalValue($this->pureColor->getRed()); + return $this->hexadecimalValuesHelper->asHexadecimalValue($this->pureColor->getRed()); } /** @@ -33,8 +35,8 @@ class RedGreenBlue extends AbstractColorModel */ public function setRed(int $red): RedGreenBlue { - $this->checkHexadecimalValue($red); - $this->pureColor->setRed($this->fromHexadecimalValue($red)); + $this->hexadecimalValuesHelper->checkHexadecimalValue($red); + $this->pureColor->setRed($this->hexadecimalValuesHelper->fromHexadecimalValue($red)); return $this; } @@ -43,7 +45,7 @@ class RedGreenBlue extends AbstractColorModel */ #[Pure] public function getGreen(): int { - return $this->asHexadecimalValue($this->pureColor->getGreen()); + return $this->hexadecimalValuesHelper->asHexadecimalValue($this->pureColor->getGreen()); } /** @@ -52,8 +54,8 @@ class RedGreenBlue extends AbstractColorModel */ public function setGreen(int $green): RedGreenBlue { - $this->checkHexadecimalValue($green); - $this->pureColor->setGreen($this->fromHexadecimalValue($green)); + $this->hexadecimalValuesHelper->checkHexadecimalValue($green); + $this->pureColor->setGreen($this->hexadecimalValuesHelper->fromHexadecimalValue($green)); return $this; } @@ -62,7 +64,7 @@ class RedGreenBlue extends AbstractColorModel */ public function getBlue(): int { - return $this->asHexadecimalValue($this->pureColor->getBlue()); + return $this->hexadecimalValuesHelper->asHexadecimalValue($this->pureColor->getBlue()); } /** @@ -71,8 +73,8 @@ class RedGreenBlue extends AbstractColorModel */ public function setBlue(int $blue): RedGreenBlue { - $this->checkHexadecimalValue($blue); - $this->pureColor->setBlue($this->fromHexadecimalValue($blue)); + $this->hexadecimalValuesHelper->checkHexadecimalValue($blue); + $this->pureColor->setBlue($this->hexadecimalValuesHelper->fromHexadecimalValue($blue)); return $this; }