验证码

1,启动PHP的GD库

GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生产图片。在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。

php.ini中的extension=php_gd2.dll去掉注释

 

2,部分GD库函数的介绍

imagecreatetruecolor(int x_size, int y_size);//创建一个真彩色的图像,就是个空的图片

imagecolorallocate(resource image, int red, int green, int blue);//为一幅图像分配颜色(调色板)

imagestring(resource image, font, int x,int y, 内容,颜色);

 

dechex(xx);//转换为16进制

 

3image与header输出的介绍

PHP的HEADER是定义头的动作,新PHP5中支持3种类型,不定义的话就默认为php文件,通常也就是text文件来进行显示

Content-Type:xxx/yyyy  内容文件的类型,可以是zip,图片的如,image/gif,image/jpeg/image,png,在定义成别的类型之前不能有print_r之类的,否则就默认为文本类型了

Location: xxx:yyy/zzz 重定向

Status: nn xxxxx  状态码

有两篇文件讲的一些头信息,需要再详读一下。

http://legui3.blog.163.com/blog/static/1413059582010823224552/

http://www.cnblogs.com/skillup/articles/1896411.html

http://www.php100.com/php_view_481.html

 

header(*)

 

GD库中有对应的image类型

imagejped(*), imagegif(*), imagepng(*)

未转换之前是二进制的php数据,要通过图片转换函数转换成二进制的图片

Header中的content-Type的文件类型和输出格式要一致

 

 


 

imageline(resource image, int x1, int y1, int x2,int y2, int color);//画一条线,作为干扰线

imagesetpixel(resource image, int x, int y, int color);//画一个点,作为干扰点

 

imagettftext(resource image, float size, float angle, int x, int y, int color, string fontfile, string text);

//fontfile为字体,可以外部导入,‘simhei.ttf’

 

php验证码插入中文,编码格式转换

iconv("gb2312", "UTF-8", "新年快乐");//首先要将文字转换成UTF8格式

 

 

<?session_start();$nmsg = "12af";$_SESSION[check]=$nmsg;$im = imagecreatetruecolor(200,100);//设置颜色$bg = imagecolorallocate($im, 0, 0, 0);//第一次用调试版的时候,是作为背景色的$tcolor = imagecolorallocate($im, 255, 255, 255);//第二次及以后可以作为颜色参数值给其他的复色//第二个参数是字体,系统有6中字体//三,四参数是位置//五参数的内容,六是字体颜色imagestring($im, rand(3,6),rand(1,70),rand(1,20), $nmsg, $tcolor);//输出图像header("Content-type: image/jpeg");imagejpeg($im);?> 

 

ImageCreateFrom*载入PHP是一个将图片编码转换成PHP可是不的编码的过程,就是将本地的图片生成一个php的对象,和imagejped(*)等是相反的过程

具体分格式的ImageCreateFromgif,ImageCreateFromjpeg,ImageCreateFrompng,ImageCreateFromwbmp,

ImageCreateFromstring,这个是通过一串图片编码

 

 

图片合并函数imagecopy(Dimg, Simg, int x, int y, int src_x, int src_y, int src_w, int src_h);

 

图片剪切函数imagecopyresized(resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h);

在使用剪切图之前我们需要先创建一个真彩图,也就是方便内存来存储

 

<?$image="ameng.jpg";$img = getImageSize($image);//这个是获取了个数组,内容为宽度,高度,类型(1gif,2jpeg,3png),mine类型switch($img[2]){case 1:$im=ImageCreateFromGIF($image);break;case 2:$im=ImageCreateFromJPEG($image);break;case 3:$im=ImageCreateFromPNG($image);break;}$logo ="2359.jpg";$img2= getImageSize($logo);switch($img2[2]){case 1:$in=ImageCreateFromGIF($logo);break;case 2:$in=ImageCreateFromJPEG($logo);break;case 3:$in=ImageCreateFromPNG($logo);break;}//图片水印imagecopy($im, $in, 0, 0, 0, 0, 400,450);//缩略图$new = ImageCreateTrueColor(100, 100);ImageCopyResized($new, $in, 0 ,0, 0, 0, 30, 30, $img2[0], $img2[1]);///输出图像header("Content-type: image/jpeg");ImageJpeg($im);ImageJpeg($new,'生成图片的路径.jpg');//生成一张新的图片?> 

 

 

 

你可能感兴趣的:(PHP,image,header,extension,IM,DST)