欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHP绘图技术实例讲解

程序员文章站 2022-05-16 13:33:25
...
学习矢量图片(验证码),报表的绘制,生成。希望本文能帮助到大家。

步骤

创建画布
会只需要的各种图形(圆,直线,矩形,弧线,扇形)
输出图像到网页,也可以另存
销毁图片(释放内存)

图片格式

gif 图片压缩率高,
但是只能显示256色可能造成颜色丢失,但可以显示动画

jpg/jpeg 图片的压缩率高,可以用较小的文件来显示
网页上用的比较多

png,高仿真
综合了gif和jpg的优势,但是不能显示动画

快速入门

创建画布$img = imagecreatetruecolor(100,100);

取色$red = imagecolorallocate($img, 255, 0, 0);

画图
•imagefilledarc — 画一椭圆弧且填充
•imagefilledellipse — 画一椭圆并填充
•imagefilledpolygon — 画一多边形并填充
•imagefilledrectangle — 画一矩形并填充

输出到浏览器header("content-type: image/png");
imagepng($img);

销毁
imagedestroy($img);

图片到画布

$srcImage = imagecreatefromgif(filename);$srcImage_info = getimagesize(filename);
imagecopy(dst_im, src_im, dst_x, dst_y, 
    src_x, src_y, src_w, src_h);
具体参数含义 不懂看文档

写字

imagettftext(image, size, angle, x, y, 
    color, fontfile, text)

生成验证码

<?php    /**
    * Created by PhpStorm.
    * User: draymonder
    * Date: 2018/3/1
    * Time: 15:15
    */
    $checkcode ="";    for($i=0;$i<4;$i++){        $checkcode.= dechex(rand(0,15));
    }    $img = imagecreatetruecolor(200,30);    //背景颜色
    $bgcolor = imagecolorallocate($img,0,0,0);
    imagefill($img,0,0,$bgcolor);    //添加干扰线
    for($i=0;$i<10;$i++){        $color = imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));
        imageline($img,rand(0,200),rand(0,30),rand(0,200),rand(0,30),$color);
    }    //白色,字体颜色
    $white = imagecolorallocate($img,255,255,255);    //添加字符串
    imagestring($img,rand(4,6),rand(0,180),rand(0,20),$checkcode,$white);
    header("content-type: image/png");
    imagepng($img);
    imagedestroy($img);
?>

相关推荐:

php绘图技术的例子

php中的绘图技术要点及应用总结

php绘图技术常用函数整理

以上就是PHP绘图技术实例讲解的详细内容,更多请关注其它相关文章!