width <= 0) { throw new CaptchaException('Incorrect $width settings.'); } if ($this->height <= 0) { throw new CaptchaException('Incorrect $height settings.'); } if (count($this->backgrounds) < 1) { throw new CaptchaException('Invalid $backgrounds parameter.'); } if (count($this->fonts) < 1) { throw new CaptchaException('Invalid $fonts parameter.'); } if (count($this->fontColors) < 1) { throw new CaptchaException('Invalid $fontColors parameter.'); } if ($this->angle < 0) { throw new CaptchaException('Incorrect $angle settings.'); } if (!is_integer($this->fontSize) && !is_array($this->fontSize)) { throw new CaptchaException('The $fontSize parameter is not an array or integer.'); } elseif (is_array($this->fontSize)) { if (count($this->fontSize) > 2) { throw new CaptchaException('The array of $fontSize parameters contains more than 2 keys.'); } if ($this->fontSize[0] > $this->fontSize[1]) { throw new CaptchaException('The number of $fontSize[1] is less than $fontSize[0].'); } } } /** * @return array */ public function getBackgrounds(): array { return $this->backgrounds; } public function randomBackground(): string { return Arr::random($this->getBackgrounds()); } /** * @return array */ public function getFonts(): array { return $this->fonts; } public function randomFont(): string { return Arr::random($this->getFonts()); } /** * @return array */ public function getFontColors(): array { return $this->fontColors; } public function randomFontColor(): string { return Arr::random($this->getFontColors()); } /** * @return int */ public function getWidth(): int { return $this->width; } /** * @return int */ public function getHeight(): int { return $this->height; } /** * @return int */ public function getAngle(): int { return $this->angle; } public function randomAngle(): int { return mt_rand($this->getAngle() * -1, $this->getAngle()); } public function getNumberLines(): int { return $this->numberLines; } public function fontSize(): int { $fontSize = $this->fontSize; if (is_integer($fontSize)) { return $fontSize; } if (empty($fontSize[1])) { return $fontSize[0]; } return random_int($fontSize[0], $fontSize[1]); } /** * @return array */ public function getLineColors(): array { return $this->lineColors; } }