PHP基于GD库的图像处理方法小结


Posted in PHP onSeptember 27, 2016

本文实例讲述了PHP基于GD库的图像处理方法。分享给大家供大家参考,具体如下:

gd图像处理技术

extension=php_gd2.dll

创建画布

画布,一种资源型数据,可操作的图像资源

创建画布(新建)

imageCreate(width,height) //创建基于调色板的画布

imageCreateTrueColor(width,height) //创建真彩色的画布

基于图片创建画布(打开)

imageCreateFromJPEG( url)
imageCreateFromPNG(url)
imageCreateFromGIF(url)

操作画布

分配颜色:如果需要在画布上使用某种颜色,应该先将颜色分配到画布上。

(颜色标识 )= imageColorAllocate(img,r,g,b)

填充画布

imageFill(img,x,y,颜色标识)

输出画布

1. 输出到图片文件

2. 直接输出,需要告知浏览器输出为图片信息(header("Content-type:image/png;")

imagePNG(img[,url])
imageJPEG()
imageGIF()

销毁画布资源

imageDestroy(img)

<?php
header('content-type:image/png');
$img = imagecreate(300,300);
$color = imagecolorallocate($img,223,22,44);
imagefill($img,3,3,$color);
imagepng($img);
imagedestroy();
?>

运行效果图如下:

PHP基于GD库的图像处理方法小结

验证码实现

<?php
  header('content-type:image/png');
  $code = '123456789abcdefghijklmnpqrstuvwxvz';
  $length = strlen($code);
  $print = '';
  for($i=0; $i<4; $i++){
    $print.=$code[mt_rand(0,$length-1)];
  }
//  echo $print;
  $img = imagecreatefrompng('./str.png');
  $color = mt_rand(0,1)==1?imagecolorallocate($img,0,0,0):imagecolorallocate($img,255,255,255);
  //图片大小
  $img_width = imagesx($img);
  $img_height = imagesy($img);
  //字体大小
  $font = 5;
  $font_width = imagefontwidth($font);
  $font_height = imagefontheight($font);
  $fin_w = ($img_width-$font_width*4)/2;
  $fin_h = ($img_height-$font_height)/2;
  imagestring($img,$font,$fin_w,$fin_h,$print,$color);
  imagepng($img);
  imagedestroy($img);
?>
<image src="gd_string.php" onclick="this.src='gd_string.php?ra='+Math.random()"></image>

运行效果图如下:

 PHP基于GD库的图像处理方法小结

<?php
session_start();
$im=imagecreatetruecolor(80,30);
$str="";
for ($i=0;$i<4;$i++){
  $str.=dechex(rand(0,15));
}
$_SESSION['code']=$str;
$white=imagecolorallocate($im,255,255,255);
imagestring($im,rand(2,5),rand(0,70),rand(0,10),$str,$white);
//imagettftext($im,rand(0,5),rand(0,180),rand(0,100),rand(0,10),$white,"simhei.ttf",$str);
for($i=0;$i<20;$i++){
$color=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline($im,rand(0,90),rand(0,20),rand(0,100),rand(0,100),$color);
}
header("content-type:image/png");
imagepng($im);
imagedestroy($im);
?>

注意:图片输出前后不能有额外输出

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
在PHP的图形函数中显示汉字
Oct 09 PHP
php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)
Aug 21 PHP
我的php学习笔记(毕业设计)
Feb 21 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
Linux系统下php获得系统分区信息的方法
Mar 30 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
浅谈使用PHP开发微信支付的流程
Oct 04 PHP
PHP进行批量任务处理不超时的解决方法
Jul 11 PHP
PHP封装的完整分页类示例
Aug 21 PHP
PHP7 echo和print语句实例用法
Feb 15 PHP
PHP中“=&gt;
Mar 01 PHP
PHP文件上传操作实例详解
Sep 27 #PHP
PHP目录操作实例总结
Sep 27 #PHP
PHP文件操作实例总结
Sep 27 #PHP
PHP命名空间namespace用法实例分析
Sep 27 #PHP
PHP7标量类型declare用法实例分析
Sep 26 #PHP
PHP7新增运算符用法实例分析
Sep 26 #PHP
PHP7匿名类用法分析
Sep 26 #PHP
You might like
MySQL连接数超过限制的解决方法
2011/07/17 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
js实时获取系统当前时间实例代码
2013/06/28 Javascript
基于jquery实现的省市区级联无ajax
2013/09/24 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
详解使用vue实现tab 切换操作
2017/07/03 Javascript
AngularJS中控制器函数的定义与使用方法示例
2017/10/10 Javascript
JavaScript比较同一天的时间大小实例代码
2018/02/09 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
2019/01/23 Javascript
微信小程序实现用table显示数据库反馈的多条数据功能示例
2019/05/07 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
在Python中用get()方法获取字典键值的教程
2015/05/21 Python
关于numpy中np.nonzero()函数用法的详解
2017/02/07 Python
python实现机器学习之多元线性回归
2018/09/06 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python生成lmdb格式的文件实例
2018/11/08 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
C#和SQL Server的面试题
2016/08/12 面试题
挂职自我鉴定
2014/02/26 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
个人买房协议书范本
2014/10/06 职场文书
2015羊年春节慰问信
2015/02/14 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
雷锋电影观后感
2015/06/10 职场文书