gpt4 book ai didi

php - 带圆角的 imagefilledrectangle 函数

转载 作者:行者123 更新时间:2023-12-04 16:51:43 24 4
gpt4 key购买 nike

我愿意使用以下代码创建包含特定文本的图像

<?PHP
header('Content-Type: image/png');

$im = imagecreatetruecolor(320, 80);

$blue = imagecolorallocate($im, 59, 89, 152);
$sky = imagecolorallocate($im, 219, 241, 255);

imagefilledrectangle($im, 0, 0, 399, 79, $sky);

$font = 'arial.ttf';

$text = "Hello world";

imagettftext($im, 15, 0, 10, 20, $blue, $font, $text);
imagepng($im);
imagedestroy($im);
?>

现在输出结果如下图

这是长方形

rectangle image

现在如果我想给它做一个圆角怎么办引用php手册关于function imagefilledrectangle我发现了一个很好的评论,据说它的功能可以使它成为圆角

<?

function ImageRectangleWithRoundedCorners(&$im, $x1, $y1, $x2, $y2, $radius, $color)
{
// draw rectangle without corners
imagefilledrectangle($im, $x1+$radius, $y1, $x2-$radius, $y2, $color);
imagefilledrectangle($im, $x1, $y1+$radius, $x2, $y2-$radius, $color);
// draw circled corners
imagefilledellipse($im, $x1+$radius, $y1+$radius, $radius*2, $radius*2, $color);
imagefilledellipse($im, $x2-$radius, $y1+$radius, $radius*2, $radius*2, $color);
imagefilledellipse($im, $x1+$radius, $y2-$radius, $radius*2, $radius*2, $color);
imagefilledellipse($im, $x2-$radius, $y2-$radius, $radius*2, $radius*2, $color);
}

?>

但是没说怎么用! ~ 任何帮助

最佳答案

如果有人需要半径后面的背景透明,可以使用这个功能(我修改了OP发布的那个)=>

function image_rectangle_w_rounded_corners(&$im, $x1, $y1, $x2, $y2, $radius, $color) {
$alpha = imagecolorallocatealpha($im, 0, 0, 0, 127);

// draw rectangle without corners
imagefilledrectangle($im, $x1+$radius, $y1, $x2-$radius, $y2, $color);
imagefilledrectangle($im, $x1, $y1+$radius, $x2, $y2-$radius, $color);

// draw circled corners
imagefilledellipse($im, $x1+$radius, $y1+$radius, $radius*2, $radius*2, $color);
imagefilledellipse($im, $x2-$radius, $y1+$radius, $radius*2, $radius*2, $color);
imagefilledellipse($im, $x1+$radius, $y2-$radius, $radius*2, $radius*2, $color);
imagefilledellipse($im, $x2-$radius, $y2-$radius, $radius*2, $radius*2, $color);

// alpha radius bg
$width = imagesx($im);
$height = imagesy($im) - 0.01;

imagefill($im, 0, 0, $alpha);
imagefill($im, $width, 0, $alpha);
imagefill($im, 0, $height, $alpha);
imagefill($im, $width, $height, $alpha);
}

当然 - 透明度可以切换为任何其他颜色。

关于php - 带圆角的 imagefilledrectangle 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com