GD图像处理技术

一. 为什么使用GD图像处理技术

WEB项目中,GD图像处理技术应用非常广泛,比如制作验证码图片,给图片打水印等。

 

二. 什么是GD图像处理技术

PHP通过使用GD扩展来操作图像的一种技术。

 

 

 

 

三. GD扩展的应用

准备工作

第一步,在php.ini配置extension_dir配置项

 

 

第二步,检查扩展文件php_gd2.dll在配置文件夹下存在并且在php.ini中开启相应的扩展

 

 

Php.ini文件中:

 

 

第三步,重启apache并检查扩展是否已经开启成功

 

 

 

基本操作

操作分析

我们在程序中对图像进行操作,其实就相当于我们在电脑中使用软件对图像进行操作。我们使用软件对图像操作的基本步骤是:

1,打开软件  ---对应的是开启扩展

2,创建一个画布  (或者根据一张已有的图片创建了一个画布)

3,进行各种绘画操作

4,将图像保存

5,关闭操作的画布

创建画布操作

 

 

注意:创建的画布左上角为(0, 0)坐标点。

 

imagecreate函数      创建一个画布

imagecreatetruecolor函数      创建一个真彩色的画布

imagecreatefromjpeg函数      根据一张已有的jpeg图片创建一个画布

imagecreatefromgif函数        根据一张已有的gif图片创建一个画布

imagecreatefrompng函数      根据一张已有的png图片创建一个画布

 

 

imagecreate函数

需要指定两个参数,分别是画布的宽度和画布的高度。

 

 

 

Imagecreatetruecolor函数

需要指定两个参数,分别是画布的宽度和画布的高度。

 

 

 

Imagecreatefromjpegimagecreatefrompng函数

 

画布相关操作

imagecolorallocate函数      分配一个颜色(对应软件当中的选择一个颜色)

imagefill函数      颜色填充

imageline函数    画一条线

imagerectangle函数      画一个矩形

imagearc函数      画一个弧线

imagestring函数      在画布上写字(使用系统默认的字体)

imagettftext函数      在画布上使用ttf格式的字体写字

 

imagecolorallocate函数

 

 

Imagefill函数

 

 

 

Imageline函数

第二个和第三个参数为起点的坐标;第四和第五个参数为终点坐标。

 

 

imagerectangle函数

 

 

 

 

imagearc函数

 

 

 

 

imagestring函数

 

 

 

Imagettftext函数

根据自定义ttf格式字体在画布上写字。

 

 

 

图像输出相关函数

Imagejpeg函数      以jpeg格式输出(或保存)图片

Imagepng函数      以png格式输出(或保存)图片

Imagegif函数      以gif格式输出(或保存)图片

 

如果是要将图片输出到浏览器中,要先根据相应格式来指定header,否则无法正常输出图片。

 

 

 

如果不需要直接输出到浏览器,还可设置参数将图片保存成文件。

 

 

 

header注释掉(不需要加上header部分),指定第二个参数(包含新文件名的全路径)

 

辅助图像操作函数

imagesx函数      返回图像的宽度

imagesy函数      返回图像的高度

getimagesize函数      返回图像宽高等信息

 

 

 

销毁画布操作函数

Imagedestroy函数      销毁画布函数

 

 

四. 案例:制作水印图

功能分析

1, PS中打开目标图片;

2, PS中打开logo图片;

3, 在目标图片上选择一个坐标位置,将logo图片移动到目标图片选择的坐标位置上,并将logo图片上的某个坐标点对齐目标图片上的这个坐标点;

4, 调整logo(水印图)的透明度;

5, 保存图片;

6, 关闭目标图片和logo图片;

 

程序中实现

Code5.php

 

 

实现打水印功能,主要是通过imagecopymerge函数来实现,

 

 

五. 案例:制作缩略图

制作固定宽高缩略图

功能分析

1, 打开需要缩小的图片;

2, 新建一个指定宽度和高度的目标画布;

3, 在新建的目标画布上选择一个坐标点(左上角00坐标);

4, 将需要缩小的图复制移动到新建的目标画布中去,并且在需要缩小的图片上选择一个坐标点(左上角00坐标点)对齐目标画布上选择的坐标点;

5, 调整需要缩小的图片的宽度到指定的宽度200像素;

6, 调整需要缩小的图片的高度到指定的高度200像素;

7, 将目标图片保存;

8, 关闭已打开的两个画布;

程序实现过程

Code6.php

 

 

 

我们制作缩略图需要通过imagecopyresampled函数来实现。

 

 

 

制作固定宽高的缩略图,有时候经常会导致效果变形,我们需要制作等比缩略图才不会变形。

等比缩略图的制作

算法推导图:

006.vsd

 

 

 

Code7.php

 

 

 

六. 案例:验证码制作

功能分析

1, 创建画布

2, 写字

3, 设置干扰元素(点,线段,弧线)

4, 构建回显表单页面

 

程序实现

程序页面code8.php

 

 

回显页面code9.php

 

 

posted @ 2017-08-29 13:07  奋斗的黑蜗牛1号  阅读(595)  评论(0编辑  收藏  举报