diff --git a/app/Captcha/Contracts/ImageLines.php b/app/Captcha/Contracts/ImageLines.php new file mode 100644 index 0000000..5657006 --- /dev/null +++ b/app/Captcha/Contracts/ImageLines.php @@ -0,0 +1,8 @@ +getWidth(); + $imageHeight = $image->getHeight(); + for ($i = 0; $i <= $lines; $i++) { + $image->addLine( + x1: mt_rand(0, $imageWidth) + $i * mt_rand(0, $imageHeight), + y1: mt_rand(0, $imageHeight), + x2: mt_rand(0, $imageWidth), + y2: mt_rand(0, $imageHeight), + hexColor: $this->lineColors($colors) + ); + } + + return $image; + } + + private function lineColors(array $colors): string + { + if (!empty($colors)) { + return Arr::random($colors); + } + + return '#' . str_pad(dechex(mt_rand(0, 0xFFFFFF)), 6, '0', STR_PAD_LEFT); + } +}