php 用图片处理函数画一张图

一起来看看下面有一张图:

7.png

我们该怎么把这张图给画出来呢。

我们按照步骤能够分析出来:

    1.画图

    2.准备好画这张图需要的颜色

    3.填充背景颜色

    4.画两条对角线

    5.在上面画一个圆

    6.在圆上面画一个矩型

    7.保存图片

    8.销毁资源

一、我们根据这张图推出出来步骤。我们来分析需要使用到的函数:

//使用imagecreate函数创建图片,返回资源
$img = imagecreate(500,500);

二、图片创建完成我们需要向图片资源填加颜色,需要使用到函数

$颜色变量 = imagecolorallocate ( resource $图片资源 , int $红 , int $绿 , int $蓝 )

红、绿、蓝是计算机里面操作图片的三个基本色。由这三个颜色来组合成我们肉眼所看到的所有颜色。

因此 imagecolorallocate 先输入图片资源,操作这个资源。为这个图片资源准备颜色。

就相当于在画画的时候,先把画布准备好,再准备颜料。

根据这张图,我们需要准备出来的颜色有:

    1.绿

    2.蓝

    3.黑

    4.棕

按照计算机的配色原则分配的话,我们下面的颜色分配的代码就要写成下面的样子:

//红
$red = imagecolorallocate($img, 255, 0, 0);
//绿
$green = imagecolorallocate($img, 0, 255, 0);
//蓝
$blue = imagecolorallocate($img, 0, 0, 255);
//棕
$yellow = imagecolorallocate($img, 121, 72, 0);

这中图片中需要用到的几个颜色的色值。

三、 将颜色添加到背景进行填充

imagefilledrectangle ( resource $图片资源 , int $点1x轴, int $点1y轴 , int $点2x轴 , int $点2y轴 , int $color )

这个函数需要涉及到几何的一点点知识。

    1.一个点由x 坐标和y 坐标组成一个点

    2.两个点可以组成一个直线

    3.这条线如果不是水平或者垂直的线可以组成一个矩形

如下图:

document_2015-09-19_55fd0d5be46bb.png

点1和点2,可以变成一个矩形。因此,我们输出两个坐标点,可以对画布进行填充。

如果要填充整个画布的话:
点1 为x轴为画布的0位置,点1的y轴也为画布的0位置。

点2 为x轴为画布的500位置,点2的y轴也为画布的500位置。

四、画两条对角线

画一条对角线,对角线是红色。

第一条对角线的坐标为0和0,500和500
第二条对角线的坐标为500和0,0和500

imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

五、在上面画一个圆

bool imagefilledellipse ( resource $图片资源 , int $圆心x , int $圆心y , int $圆的宽 , int $圆的高 , int $圆的颜色 )
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

操作这个资源,写上圆心的坐标。然后写上长和宽。如果长宽一致为正圆,不一致则为椭圆。

六、在圆上面画一个矩型

imagefilledrectangle($img, 200, 200, 300, 300, $blue);

这个我们在上面一个中讲过,我们就不细说了。

七、保存图片

bool imagejpeg ( resource $image [, string $filename])

八、销毁图片资源

imagedestroy($img);

我们来看一下最终组合出来的代码:

<?php
//创建图片
$img = imagecreatetruecolor(500, 500);

//分配颜色
$red = imagecolorallocate($img, 255, 0, 0);

$green = imagecolorallocate($img, 0, 255, 0);

$blue = imagecolorallocate($img, 0, 0, 255);

$pur = imagecolorallocate($img, 255, 0, 255);

$yellow = imagecolorallocate($img, 121, 72, 0);


//填充背景
imagefilledrectangle($img, 0, 0, 500, 500, $green);

//画对角线
imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

//画圆
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

//圆中间画矩形
imagefilledrectangle($img, 200, 200, 300, 300, $blue);


//保存图片,图片名为haha.jpg
imagejpeg($img, 'haha.jpg');

//销毁资源
imagedestroy($img);

?>


继续学习
||
<?php //创建图片 $img = imagecreatetruecolor(500, 500); //分配颜色 $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $pur = imagecolorallocate($img, 255, 0, 255); $yellow = imagecolorallocate($img, 121, 72, 0); //填充背景 imagefilledrectangle($img, 0, 0, 500, 500, $green); //画对角线 imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue); //画圆 imagefilledellipse($img, 250, 250, 200, 200, $yellow); //圆中间画矩形 imagefilledrectangle($img, 200, 200, 300, 300, $blue); //保存图片,图片名为haha.jpg imagejpeg($img, 'haha.jpg'); //销毁资源 imagedestroy($img); ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

高并发千万级数据库系统解决方案
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载

Reg

看不到图片的给你这个PHP文件<?php?>的外层加个<img src="你PHP画出来的文件名.jpg" />就能看到了。

5年前    添加回复 2

谢单单

这一节感觉太水了~~ $img打印出来是 resource(1) of type (gd),那怎么获得图片网址呢?

5年前    添加回复 0

不靠譜°ζ

图片怎么看不到

6年前    添加回复 0

luoshui

怎么预览图?

6年前    添加回复 0

杨小龙

zx xxxxxxX'zz'z'''z''zzzx'zz

6年前    添加回复 0

无法执行代码

[最新 周旻 的回答] 这里是代码生成的图片吧,地址要怎么换?

时间:6年前

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~