cards
This commit is contained in:
@ -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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user