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 相关文章推荐
在IIS上安装PHP4.0正式版
Oct 09 PHP
php escape URL编码
Dec 10 PHP
PHP+Mysql日期时间如何转换(UNIX时间戳和格式化日期)
Jul 15 PHP
php中inlcude()性能对比详解
Sep 16 PHP
PHP数组传递是值传递而非引用传递概念纠正
Jan 31 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 PHP
php简单实现发送带附件的邮件
Jun 10 PHP
PHP中Session可能会引起并发问题
Jun 26 PHP
PHP之正则表达式捕获组与非捕获组(详解)
Jul 29 PHP
PHP中的密码加密的解决方案总结
Oct 26 PHP
PHP编程实现微信企业向用户付款的方法示例
Jul 26 PHP
PHP中PDO事务处理操作示例
May 02 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
咖啡豆分级制度 咖啡豆等级分类 咖啡豆是按口感分类的吗?
2021/03/05 新手入门
PHP 翻页 实例代码
2009/08/07 PHP
浅析php中常量,变量的作用域和生存周期
2013/08/10 PHP
PHP中for循环与foreach的区别
2017/03/06 PHP
PHP CURL使用详解
2019/03/21 PHP
让回调函数 showResponse 也带上参数的代码
2007/08/13 Javascript
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
JSON 教程 json入门学习笔记
2020/09/22 Javascript
xml文档转换工具,附图表例子(hta)
2010/11/17 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
toggle()隐藏问题的解决方法
2014/02/17 Javascript
javascript实现仿IE顶部的可关闭警告条
2015/05/05 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
2017/09/20 jQuery
vue-cli 3.x 配置Axios(proxyTable)跨域代理方法
2018/09/19 Javascript
JS实现的新闻列表自动滚动效果示例
2019/01/30 Javascript
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
2018/01/15 Python
对Tensorflow中的矩阵运算函数详解
2018/07/27 Python
Django中ORM外键和表的关系详解
2019/05/20 Python
对python tkinter窗口弹出置顶的方法详解
2019/06/14 Python
Python+selenium点击网页上指定坐标的实例
2019/07/05 Python
python 判断字符串中是否含有汉字或非汉字的实例
2019/07/15 Python
python中round函数保留两位小数的方法
2020/12/04 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
大学三年计划书范文
2014/04/30 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
上诉答辩状范文
2015/05/22 职场文书
地道战观后感300字
2015/06/04 职场文书
电台广播稿范文
2015/08/19 职场文书
初中体育课教学反思
2016/02/16 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python