我愿意使用以下代码
创建包含特定文本的图像<?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);
?>
现在输出将如下图所示
这是矩形
立即 如果我想把它变成圆角怎么办? 通过参考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);
}
?>
但是没有提到怎么用! 〜任何帮助
答案 0 :(得分:1)
如果有人需要半径后面的背景是透明的,可以使用这个功能(我修改了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);
}
当然 - 透明度可以切换为任何其他颜色。
答案 1 :(得分:0)
让我试试
可能
$x1 = top left point's x coordinate
$y1 = top left point's y coordinate
$x2 = bottom right point's x coordinate
$y2 = bottom right point's y coordinate
$radius = radius of the curve of rounded corner
设置这些数据并试试......祝你好运:)
答案 2 :(得分:0)
这是一个古老的问题,但也许有人会从这个答案中受益。 这是一个非常不错的功能! 使用方法如下:
x1 = the horizontal x point where you want rectangle to start
x2 = the horizontal x point where you want rectangle to end
y1= the vertical y point where rectangle starts
y2 = the vertical y point where rectangle ends
现在是半径。 将y2和y1之差的半径设置为“一半”
假设您的y2为100,y1为50,则半径将为:
( y2 - y1 )/2
( 100 - 50 )/2 = 25
示例在这里: http://vagminetech.com/rect.htm
对于宽矩形: x1 = 50 x2 = 250 y1 = 50 y2 = 100 r = 25
对于一个高大的矩形 x1 = 50 x2 = 150 y1 = 50 y2 = 150 r = 50
致谢