1
0
mirror of https://github.com/Intervention/image.git synced 2025-08-19 12:11:26 +02:00

Add doc blocks

This commit is contained in:
Oliver Vogel
2023-10-21 15:47:08 +02:00
parent 3401fefa4f
commit f73d1a2591
2 changed files with 92 additions and 0 deletions

View File

@@ -9,31 +9,71 @@ class Red implements ColorChannelInterface
{
protected int $value;
/**
* Create and validate new instance
*
* @param int $value
*/
public function __construct(int $value)
{
$this->value = $this->validate($value);
}
/**
* Alias of value()
*
* @return int
*/
public function toInt(): int
{
return $this->value;
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::value()
*/
public function value(): int
{
return $this->value;
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::normalize()
*/
public function normalize($precision = 32): float
{
return round($this->value() / $this->max(), $precision);
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::min()
*/
public function min(): int
{
return 0;
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::max()
*/
public function max(): int
{
return 255;
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::validate()
*/
public function validate(mixed $value): mixed
{
if ($value < $this->min() || $value > $this->max()) {
@@ -43,11 +83,21 @@ class Red implements ColorChannelInterface
return $value;
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::toString()
*/
public function toString(): string
{
return (string) $this->value();
}
/**
* {@inheritdoc}
*
* @see ColorChannelInterface::__toString()
*/
public function __toString(): string
{
return $this->toString();

View File

@@ -4,11 +4,53 @@ namespace Intervention\Image\Interfaces;
interface ColorChannelInterface
{
/**
* Return color channels integer value
*
* @return int
*/
public function value(): int;
/**
* Return the channels value normalized to a float value form 0 to 1 by its range
*
* @return float
*/
public function normalize(int $precision = 32): float;
/**
* Throw exception if the given value is not applicable for channel
* otherwise the value is returned unchanged.
*
* @return mixed
*/
public function validate(mixed $value): mixed;
/**
* Return the the minimal possible value of the color channel
*
* @return int
*/
public function min(): int;
/*
* Return the the maximal possible value of the color channel
*
* @return int
*/
public function max(): int;
/**
* Cast color channel's value to string
*
* @return string
*/
public function toString(): string;
/**
* Cast color channel's value to string
*
* @return string
*/
public function __toString(): string;
}