This commit is contained in:
2025-01-19 17:15:58 +03:00
parent 40369fb515
commit b18378bcb1
41 changed files with 1257 additions and 30 deletions

View File

@ -40,9 +40,43 @@ class ImageGD
imagedestroy($this->img);
}
public function makeCornersForImage($radius, $background): void
{
// включаем режим сопряжения цветов
imagealphablending($this->img, true);
// размер исходной картинки
$width = imagesx($this->img);
$height = imagesy($this->img);
// создаем изображение для углов
$corner = imagecreatetruecolor($radius, $radius);
imagealphablending($corner, false);
// прозрачный цвет
$trans = imagecolorallocatealpha($corner, 255, 255, 255, 127);
// заливаем картинку для углов
imagefill($corner, 0, 0, $background);
// рисуем прозрачный эллипс
imagefilledellipse($corner, $radius, $radius, $radius * 2, $radius * 2, $trans);
// массив положений. Для расположения по углам
$positions = array(
array(0, 0),
array($width - $radius, 0),
array($width - $radius, $height - $radius),
array(0, $height - $radius),
);
// накладываем на углы картинки изображение с прозрачными эллипсами
foreach ($positions as $pos) {
imagecopyresampled($this->img, $corner, $pos[0], $pos[1], 0, 0, $radius, $radius, $radius, $radius);
// поворачиваем картинку с эллипсов каждый раз на 90 градусов
$corner = imagerotate($corner, -90, $background);
}
}
protected function hexToRgb(string $hex)
{
return sscanf($hex, "#%02x%02x%02x");
}
}