php如何打开gd2,php GD2库的引入和使用

新建网页

function chv(vcode) {

//var vcode = document.getElementsByTagName('img')[0];

vcode.src = vcode.src+'?_s='+Math.random();

}

验证码:04.php

验证码:05.php

/****

燕十八 公益PHP讲堂

论 坛: http://www.zixue.it

微 博: http://weibo.com/Yshiba

YY频道: 88354001

****/

/***

====笔记部分====

GD2库的引入:

打开php.ini,查询gd2.dll

把这一行的注释去掉,重启apache

测试gd库的信息,用gd_info函数

gd库相关函数的特点及学习方法

gd库相关函数----参数特别多,最多达11个,所以请不要死记.

重在理解:

1:理解绘图的过程

2:理解屏幕的坐标体系

***/

print_r(gd_info());

<?php 

/****

燕十八 公益PHP讲堂

论 坛: http://www.zixue.it

微 博: http://weibo.com/Yshiba

YY频道: 88354001

****/

/***

====笔记部分====

GD库画图的典型流程!

1:创建画布

2:创建各种颜料

3:绘画(如写字,画线,画矩形等形状)

4:保存成图片

5:清理战场,销毁画布!

***/

/*

1:造画布(多宽,多高) imagecreatetruecolor()

返回是资源类型

*/

$width = 300;

$height = 200;

$im = imagecreatetruecolor($width,$height);

// print_r($im);

/*

2:创建颜料 imagecolorallocate

imagecolorallocate(画布资源,红,绿,蓝)

*/

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

/*

3:画图

先用最简单的,泼墨渲染! imagefill

imagefill是用颜料填充画布

bool imagefill (画布资源 , 填充的起始点x值 , 填充的起始点y值 , 填充颜色)

*/

imagefill($im,0,0,$blue);

/*

4:保存!

imagepng

imagejpeg

imagegif

..

来保存成不同图片格式

*/

if(imagepng($im,'./01.png')) {

echo '图片生成成功!';

} else {

echo 'fail';

}

/*

5:销毁画布

画布很耗资源,注意释放!

*/

imagedestroy($im);

/****

燕十八 公益PHP讲堂

论 坛: http://www.zixue.it

微 博: http://weibo.com/Yshiba

YY频道: 88354001

****/

/***

====笔记部分====

画图5步详解!

***/

/*

1 创建画布

可以用imagecreatetruecolor来创建空白画布,

也可以直接打开一幅图片来创建画布(自然,所做的修改在图片基础上进行)

imagecreatefromjpeg()

imagecreatefrompng()

imagecreatefromgif()

*/

$file = './home.jpg';

$im = imagecreatefromjpeg($file);

//print_r($im);

/*

配颜料

*/

$red = imagecolorallocate($im,255,0,0);

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

/*

bool imageline ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int $color )

参数分别代表: 画布资源, 1端点的x值, y值, 另一端点x,y值, 线段的颜色

*/

/*

从左上角到右下解,画一条红线

*/

imageline($im,0,0,670,503,$red);

/*

从左下角到右上解,画一条红线

*/

imageline($im,0,503,670,0,$blue);

/*

第3步,保存图片,也有讲究

imagepng()

imagejpeg()

imagegif()保存成不同类型的图片

也可以把图片内容不保存,直接输出!

*/

//echo imagejpeg($im,'./homenew.jpeg')?'保存成功':'保存失败';

// 下面,直接输出图片,还是用上面几个函数,

// 不要第2个参数,即可直接输出

// 在验证码里,这个功能必用.

header('content-type: image/png');

imagepng($im);

/**

销毁

**/

imagedestroy($im);

 
 
<?php 

/****

燕十八 公益PHP讲堂

论 坛: http://www.zixue.it

微 博: http://weibo.com/Yshiba

YY频道: 88354001

****/

/***

====笔记部分====

验证码!

验证码不就是有字母的图片

造图片

写字(不会) ---> imagestring

***/

// 1 造画布

$im = imagecreatetruecolor(50,25);

// 不填充,同学们看看默认画布是什么底色? 答:黑色

// 2 造颜料准备写字

$red = imagecolorallocate($im,255,0,0);

/*

3 写字

imagestring — 水平地画一行字符串

说明

bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )

参数分别代表: 画布资源,字体大小(1-5中选择), 字符最左上角的x坐标,y坐标 ,要写的字符串,颜色

*/

$str = substr(str_shuffle('ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'),0,4);

imagestring($im,5,8,5,$str,$red);

header('content-type: image/png');

imagepng($im);

<?php 

/****

燕十八 公益PHP讲堂

论 坛: http://www.zixue.it

微 博: http://weibo.com/Yshiba

YY频道: 88354001

****/

/***

====笔记部分====

复杂一点的验证码

***/

// 1 造画布

$im = imagecreatetruecolor(50,25);

// 2 造颜料准备写字

$red = imagecolorallocate($im,255,0,0);

// 浅色背景

$gray = imagecolorallocate($im,220,220,220);

// 随机颜色

$randcolor = imagecolorallocate($im,mt_rand(0,150),mt_rand(0,150),mt_rand(0,150));

$linecolor1 = imagecolorallocate($im,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));

$linecolor2 = imagecolorallocate($im,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));

$linecolor3 = imagecolorallocate($im,mt_rand(100,150),mt_rand(100,150),mt_rand(100,150));

// 填充背景

imagefill($im,0,0,$gray);

// 画干扰线

imageline($im,0,mt_rand(0,25),50,mt_rand(0,25),$linecolor1);

imageline($im,0,mt_rand(0,25),50,mt_rand(0,25),$linecolor2);

imageline($im,0,mt_rand(0,25),50,mt_rand(0,25),$linecolor3);

/*

3 写字

imagestring — 水平地画一行字符串

说明

bool imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col )

参数分别代表: 画布资源,字体大小(1-5中选择), 字符最左上角的x坐标,y坐标 ,要写的字符串,颜色

*/

$str = substr(str_shuffle('ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'),0,4);

imagestring($im,5,8,5,$str,$randcolor);

header('content-type: image/png');

imagepng($im);

/****

验证码的字符串还想扭曲该如何做.

参考正弦曲线函数,弧度函数

同学们自己测试

****/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值