80、PHP图像处理之绘制多边行及文字绘制

阅读() @2018-10-29 18:16:08

1、PHP绘制多边形:

(1)空心多边形:imagepolygon($image, $points, $num_points, $color)。

(2)实心多边形:imagefilledpolygon($image, $points, $num_points, $color)。

代码如下:

$img = imagecreatetruecolor(600, 600);
imagefill($img, 0, 0, imagecolorallocate($img, 255, 0, 0));

$point = array(10,10,590,10,590,590,300,400);
//空心多边形
//imagepolygon($img, $point, 4, imagecolorallocate($img, 255, 255, 255));
//实心多边形
imagefilledpolygon($img, $point, 4, imagecolorallocate($img, 255, 255, 255));

header('Content-type:image/jpeg');
imagejpeg($img);

效果图如下:

PHP绘制多边形效果图

2、PHP绘制文字:

(1)横排文字:imagechar($image, $font, $x, $y, $c, $color)。

代码如下:

$img = imagecreatetruecolor(300, 300);
imagefill($img, 0, 0, imagecolorallocate($img, 123, 0, 123));

$str = 'http://www.zymseo.com';
$str_len = strlen($str);

for($i=0;$i<$str_len;$i++){
    $new_str = substr($str, $i,1);
    imagechar($img, 5, 10+$i*10, 10, $new_str, imagecolorallocate($img, 255, 255, 255));
}

header('Content-type:image/jpeg');
imagejpeg($img); 

效果图如下:

PHP绘制横排文字

(2)竖排文字:imagecharup($image, $font, $x, $y, $c, $color)。

代码如下:

$img = imagecreate(300, 300);
$img_color = imagecolorallocate($img, 231, 0, 231);
$font_color = imagecolorallocate($img, 255, 255, 255);

$str = 'http://www.0351zhuangxiu.com';
$str_len = strlen($str);

//从上到下排列
/*for($i=0;$i<$str_len;$i++){
$new_str = substr($str, $i,1);
imagecharup($img, 5, 10, 10+$i*10, $new_str, $font_color);
} */

//从下到上排列
for($i=$str_len;$i>=0;$i--){
    $new_str = substr($str, $i,1);
    imagecharup($img, 5, 10, 290-$i*10, $new_str, $font_color);
}


header('Content-type:image/jpeg');
imagejpeg($img); 

效果图如下:

PHP绘制竖排文字

(3)绘制横排字符串:imagestring($image, $font, $x, $y, $string, $color)。

(4)绘制竖排字符串:imagestringup($image, $font, $x, $y, $string, $color)。

绘制字符串与绘制字符的区别是:imagestring能一次性把某个字符串里边所有的字符都绘制出来,而imagechar一次性只能绘制某个字符串里边的其中一个字符,所以需要用到循环并截取单个字符。

代码如下:

$str = 'http://web.zymseo.com';

$img = imagecreatetruecolor(300, 300);
imagefill($img, 0, 0, imagecolorallocate($img, 100, 100, 100));

imagestring($img, 5, 10, 10, $str, imagecolorallocate($img, 255, 255, 255));

header('Content-type:image/jpeg');
imagejpeg($img);

效果图如下:

PHP绘制字符串

用这种方法就可以做水印!

微信二维码
锐壳主机