GD库处理图像

在PHP5中,动态图象的处理要比以前容易得多。PHP5在php.ini文件中包含了GD扩展包,只需去掉GD扩展包的相应注释就可以正常使用了。PHP5包含的GD库正是升级的GD2库,其中包含支持真彩图像处理的一些有用的JPG功能。

一般生成的图形,通过PHP的文档格式存放,但可以通过HTML的图片插入方式SRC来直接获取动态图形。比如,验证码、水印、微缩图等。

一.创建图像

创建图像的一般流程:

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

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

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

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

5).输出最终图形。

6).清除所有资源。

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

  //1 设定标头
  //header("Content-type:text/html;charset=utf-8");  //不写就是默认,默认的是html文档
  header("Content-type:image/png;");

  //2 创建一个图形区域,图像背景
  //两种方式
  $im = imagecreatetruecolor(200, 200); //返回的是资源句柄

  //3 在空白图像区域绘制填充背景
  //填充颜色换掉,首相要有个颜色填充器
  $blue = imagecolorallocate($im, 0, 102, 255);
  //将颜色填充到背景上去,imagefill();
  imagefill($im, 0, 0, $blue);

  //4 在背景上绘制图形轮廓输入文本
  $white = imagecolorallocate($im, 255, 255, 255);
  //画一条线imageline();
  imageline($im, 0, 0, 200, 200, $white);
  imageline($im, 0, 200, 200, 0, $white);
  //绘制文本imagestring();二号字体,x y位置,文本,颜色
  imagestring($im, 5, 70, 20, ‘Mr.dang‘, $white);

  //5 输出最终图形
  imagepng($im);  //输出png格式图片

  //6 清空资源
  imagedestroy($im);

7).其他页面调用图像:只需要在另一个php文件调用即可,输出img标签,src写上边创建的图像的文件地址

  //demo2.php
  echo ‘<img src="demo.php" alt="图形" title="图形" />‘;

二.简单小案例

1 验证码

/*简单验证码案例  */

  //1 获取四位数字字母混编
  //mt_rand();获取随机数
  //dechex();十进制转换为十六进制
  for($i=0;$i<4;++$i){
      $nmsg .= dechex(mt_rand(0, 15));
  }

  //2 将上边的变成图片
  header(‘Content-type:image/png‘);
  $im = imagecreatetruecolor(75, 25);
  $blue = imagecolorallocate($im, 0, 102, 255);
  $white = imagecolorallocate($im, 255,255,255);
  imagefill($im, 0, 0, $blue);
  imagestring($im, 5, 20, 5, $nmsg, $white);
  imagepng($im);
  imagedestroy($im);

2 加载已有图像:这个图像事先防止于和php文件同一目录下,可以用相对或绝对地址调用,建议用绝对因为更快,我们的示例中用的是绝对,用魔法常量赖实现的

/*加载已有图像  */
//  //
//   define(‘URL‘, dirname(__FILE__).‘\\‘);
//   header(‘Content-type:image/png‘);
//   $im = imagecreatefrompng(URL.‘2.png‘);
//   $white = imagecolorallocate($im, 255, 255, 255);
//   imagestring($im, 5, 10, 10, ‘http://www.dang.com‘, $white);
//   imagepng($im);
//   imagedestroy($im);

3 采用本机系统中的字体

/*采用系统提供字体  */
//   $font = ‘C:\Windows\Fonts\msyh.ttc‘; //把路径传进去即可
//   define(‘URL‘, dirname(__FILE__).‘\\‘);

//   header(‘Content-type:image/png‘);
//   $im = imagecreatefrompng(URL.‘2.png‘);
//   $white = imagecolorallocate($im, 255, 255, 1);
//   imagettftext($im,40,10,50,100,$white,$font,‘hello,党兴明‘); //第一个数字字体大小,第二个旋转角度
//   imagepng($im);
//   imagedestroy($im);

4 微缩图

/*微缩图问题  */
  define(‘URL‘, dirname(__FILE__).‘\\‘);
  header(‘Content-type:image/png‘);
  //1 取得图像大小
  list($width,$height) = (getimagesize(URL.‘2.png‘));  //返回的是数组,里边包含尺寸
  //2 将原图的宽高缩小百分比
  $_width = $width*0.4;
  $_height = $height*0.4;

  //3 创建一个新图
  $im = imagecreatetruecolor($_width, $_height);

  //4 载入原图,将原图复制到新图上去
  //载入
  $_im = imagecreatefrompng(URL.‘2.png‘);
  //将原图重新采样,拷贝到新图上,最后按0.4的比例输出
  //imagecopyresampled();重新采样拷贝图片并调整大小
  imagecopyresampled($im, $_im, 0, 0, 0, 0, $_width, $_height, $width, $height);

  //5 输出销毁
  imagepng($im);
  imagedestroy($im);
  imagedestroy($_im);

注意:以上示例中都用的png格式的图片,可以用其他格式的(只要把函数中的png替换就好)。但jpg在函数中要写jpeg,bmp要写wbmp。

时间: 2024-10-23 18:56:29

GD库处理图像的相关文章

使用PHP GD库绘制图像,不显示的问题

1. 使用PHP中的GD库绘制图像,之后浏览器无法显示,GD库安装,配置也没什么错误,提示图像因本身有错无法显示,于是就在header() 前面使用ob_clean();然后使用浏览器就能正常的浏览了 1 <?php 2 $height = 300; 3 $width = 300; 4 $im = imagecreatetruecolor($width, $height); 5 $white = imagecolorallocate ($im, 255, 255, 255); 6 $blue =

PHP-&gt;利用GD库新建图像

1.确认php中GD库是否开启 在PHP配置文件php.ini中查找extension=php_gd2.dll,去掉前边的(分号) ';' 即可,一般php是默认开启的 2.绘画步骤 创建一个画布(画板).画笔.色彩. *开始绘画(重点,难点) 输出图像(复制型) 销毁图像资源(释放内存) 3.示例 为了方便演示,先了解后两步 输出图像: 1 header("Content-Type: image/jpeg");//设置响应头信息为一个jpeg的图片 2 imagejpeg($im);

PHP 使用GD库生成验证码 在图像上绘制汉字

PHP 并不仅限于创建 HTML 输出, 它也可以创建和处理包括 GIF, PNG, JPEG, WBMP 以及 XPM 在内的多种格式的图像. 更加方便的是,PHP 可以直接将图像数据流输出到浏览器. 要想在 PHP 中使用图像处理功能,你需要连带 GD 库一起来编译 PHP. GD 库和 PHP 可能需要其他的库, 这取决于你要处理的图像格式. 你可以使用 PHP 中的图像函数来获取下列格式图像的大小: JPEG, GIF, PNG, SWF, TIFF 和 JPEG2000.如果联合 ex

GD库的基本信息,图像的旋转、水印、缩略图、验证码,以及图像类的封装

GD库检测 <?php phpinfo(); ?> GD库安装• Windows 使用phpstudy • Linux 编译安装 –with-gd• Linux 编译安装扩展 GD库支持的图像格式 使用 gd_info() 函数 检测服务器支持的图像格式 图像信息处理 <?php //获取图像详细信息 $image = '../image/b.png'; $info = getimagesize($image); var_dump($info); $string = file_get_c

PHP利用GD库画图和生成验证码图片

首先得确定php.ini设置有没有打开GD扩展功能,测试如下 print_r(gd_info()); 如果有打印出内容如下,则说明GD功能有打开: Array ( [GD Version] => bundled (2.0.34 compatible) [FreeType Support] => 1 [FreeType Linkage] => with freetype [T1Lib Support] => 1 [GIF Read Support] => 1 [GIF Crea

PHP学习笔记-GD库与Jpgraph的使用

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/52281196 本文出自:[顾林海的博客] 前言 学习PHP从第一篇笔记到现在这篇,已经十多篇了,每天花时间去学习是需要毅力的,好在自己对IT这行也是比较感兴趣,算是每天自娱自乐吧,下周一就去考科目三了,想想也是醉了,拖这么长时间. GD库 GD库是一个开放的动态创建图像.源代码公开的函数库,可以从官方网站http://www.boutell.com/gd处下载.目前,

安装GD库解决ThinkPHP 验证码Call to undefined function Think\imagecreate()出错

在php中imagecreate函数是一个图形处理函数,主要用于新建一个基于调色板的图像了,然后在这个基础上我们可以创建一些图形数字字符之类的,但这个函数需要GD库支持,如果没有开启GD库使用时会提示Call to undefined function imagecreate()错误. 例,我在测试一个简单生成图形时实例 Example #1 新建一个新的 GD 图像流并输出图像  代码如下 复制代码 <?php header("Content-type: image/png")

php GD库

php 中之前比较常使用的是GD库来画图像,这个使用得比较多的是验证码的使用.首先GD库画图必须要有的一些步骤: 首先,创建画布,其次,绘制图片轮廓和画本,再次是输出图型,最后是释放资源. 创建方法如下: imagecreatetruecolor(int width,int height); 填充颜色: $color=imagecolorallocate($resouces,int a,int g,int b); 颜色填充: imagefill($resouces,int start,int s

PHP学习笔记-----GD库

PHP中GD库的使用 最新的GD库版本支持GIF.JPEG.PNG.WBMP.XBM等格式的图像文件. 创建图像应该完成如下所示的4个步骤. (1)      创建画布 (2)      绘制图像 (3)      输出图像 (4)      释放资源 画布管理 imagecreate()//新建一个基于调色板的图像 imagecreatetruecolor()//新建一个真彩***像 设置颜色 imagecolorallocate()//为一副图像分配颜色 生成图像 imagegif() im