| Можно поступить следующим образом (с типами изображений, с определением размера скругления в зависимости от размера изображения, сами подумаете).
<?
//создаем изображение-маску
//размер маски должен быть равен исходному изображению
$im = imagecreatetruecolor(300,300);
//цвет, которым и будут содаваться закругления
//его можно определять как в HTML принято
$col = 0xff7739;
//далее получая из него индекс,
$col = imagecolorsforindex($im, $col);
//и создавая палитру
$col = imagecolorallocate($im, $col['red'], $col['green'], $col['blue']);
//заполняем маску цветом скругления
imagefill($im, 0, 0, $col);
//устанавливаем и определяем цвет прозрачности маски
$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im, $black);
//рисуем закругления
//радиус закругления в примере принят равным 15
imagefilledarc($im, 15, 15, 31, 31, 180, 270, $black, 4);
imagefilledarc($im, 285, 15, 31, 31, 270, 0, $black, 4);
imagefilledarc($im, 284, 284, 31, 31, 0, 90, $black, 4);
imagefilledarc($im, 15, 284, 31, 31, 90, 180, $black, 4);
//заполняем прозрачным цветом остальную облась маски
imagefilledrectangle ($im, 0, 15, 299, 284, $black);
imagefilledrectangle ($im, 15, 0, 284, 299, $black);
//это имитирует исходное изображение
$ims = imagecreatetruecolor(300,300);
$wh = imagecolorallocate($ims, 176, 155, 68);
imagefill($ims, 0, 0, $wh);
//накладываем маску на исходное изображение
imagecopymerge($ims, $im, 0, 0, 0, 0, 300, 300, 100);
//вывод изображения
header ("Content-type: image/png");
imagepng($ims);
?>
|
| |