现在的位置: 首页学习笔记>正文
PHP六步制图法免费亲授了.
发表于6年前 学习笔记 评论数 5

前天学完上传图片什么的,今天就该学处理和做图像了.

喜欢武侠的都知道要修炼绝世武功之前,都要个什么秘籍的.

今天我就来学个六步制图法,好吧,不扯了,继续.

一般生成的图形,通过 PHP 的文档格式存放,但可以通过 HTML 的图片插入方式 SRC

来直接获取动态图形。比如,验证码、水印、微缩图等.

 

学这个可以参考手册图像函数

PHP 不仅限于只产生 HTML 的输出。还可以创建及操作多种不同图像格式的图像文件,包括 gifpngjpgwbmp 和 xpm。更方便的是,PHP 可以直接将图像流输出到浏览器。要处理图像,需要在编译 PHP 时加上图像函数的 GD 库。GD 和 PHP 还可能需要其它的库,视乎需要支持哪些图像格式而定。

可以在 PHP 中使用图像函数来得到 JPEGGIFPNGSWFTIFF 和 JPEG2000 图像的大小。

 

一.创建图像

 

创建图像的一般流程:

1).设定标头,告诉浏览器你要生成的 MIME 类型。

2).创建一个图像区域,以后的操作都将基于此图像区域。

3).在空白图像区域绘制填充背景。

4).在背景上绘制图形轮廓输入文本。

5).输出最终图形。

6).清除所有资源。

7).其他页面调用图像。

 

我们一步一步来.

PHP制图法

 

  1. <?php   
  2.   
  3.   
  4. //一般生成的图像可以是png,jpg,gif,bmp   
  5. //jpeg,wbmp   
  6.        
  7. //第一步,设置文件MIME类型,输出类型  text/html类型是网页类型,默认可以不写   
  8. //将输出类型改成图像流   
  9.     header('Content-Type: image/png;');   
  10. //第二步,创建一个图形区域,图像背景   
  11. //有两种创建方式  ,   
  12. //第一种imagecreate返回的是资源类型.资源类型,一般要加上@ 符号,防止出错   
  13. //手册推荐是imagecreatetruecolor   
  14. //我们做例子就用这个.   
  15. //imagecreatetruecolor返回的是一个资源句柄   
  16. //所以我们要用到第五步   
  17. //  $img = imagecreatetruecolor(200,200);   
  18.        
  19.            
  20.     //第五步,输出最终图像   
  21.     //以PNG格式将图像输出到浏览器或文件   
  22. //  imagepng($img);   
  23.     //这是最简单的一张图片. 黑色背景的图片.   
  24.     //这个函数创建了一个图像区域,没有进行填充的时候,背景默认是黑色的.   
  25.     //我们把前面的注释掉然后继续绘制.   
  26.        
  27.     //第一步      
  28.     header('Content-Type: image/png;');   
  29.     //第二步   
  30.     $img = imagecreatetruecolor(200,200);   
  31.     //第三部.我们来换填充颜色.我们需要用到填充器.   
  32.        
  33.     //在空白图像区域,绘制颜色,文字啊,线条等。。。   
  34.     //imagecolorallocate -- 为一幅图像分配颜色   
  35.     //用到这个函数. 我们用PS工具来选颜色.   
  36.     //就是 红绿蓝的配色 后面的数字做参考.   
  37.     //我这是选的一个荧光绿颜色.   
  38.        
  39.     $blue = imagecolorallocate($img,130,238,64);       
  40.     //将这个blue颜色填充到背景上去   
  41.     //imagefill -- 区域填充   
  42.     imagefill($img,0,0,$blue);   
  43.     //第四部,在绿色的背景上输入一些线条,文字等   
  44.     //白色的值就是 255 255 255 这个可以有,都能记住吧.   
  45.     $white = imagecolorallocate($img,255,255,255);   
  46.     //imageline -- 画一条线段   
  47.     //imageline() 用 color 颜色在图像 image 中从坐标 x1,y1    
  48.     //到 x2,y2(图像左上角为 0, 0)画一条线段。    
  49.     imageline($img,0,0,200,200,$white);   
  50.     imageline($img,200,0,0,200,$white);   
  51.     //imagestring -- 水平地画一行字符串   
  52.     //imagestring ( resource image, int font, int x, int y, string s, int col )   
  53.     //imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处   
  54.     //(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。    
  55.   
  56.     imagestring($img,5,40,20,'www.mechao.cn',$white);   
  57.     //第五步   
  58.     imagepng($img);   
  59.     //第六步 清空资源   
  60.        
  61.     imagedestroy($img);    
  62.        
  63.     //好了一个简单的图片我们就绘制出来了.   
  64.     //我们明天再继续深入学习图片.   
  65. ?>  

最终效果图.

独家记忆
  1. Pingback: 网页制作相关链接(长期更新,欢迎投递) | 杂乱记录 | 月亮云

×
腾讯微博