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将会员数据导入到ucenter的代码
Jul 18 PHP
用PHP将数据导入到Foxmail的实现代码
Sep 05 PHP
PHP5中虚函数的实现方法分享
Apr 20 PHP
php记录日志的实现代码
Aug 08 PHP
PHP实现文件下载断点续传详解
Oct 15 PHP
PHP类的反射用法实例
Nov 03 PHP
php使用pear_smtp发送邮件
Apr 15 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
Laravel5中防止XSS跨站攻击的方法
Oct 10 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
php定期拉取数据对比方法实例
Sep 22 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
PHP与MongoDB简介|安全|M+PHP应用实例详解
2013/06/17 PHP
浅析十款PHP开发框架的对比
2013/07/05 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
javascript学习网址备忘
2007/05/29 Javascript
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
JavaScript OOP面向对象介绍
2010/12/02 Javascript
JQuery给元素绑定click事件多次执行的解决方法
2014/05/29 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
NodeJs中的VM模块详解
2015/05/06 NodeJs
Jquery ajax加载等待执行结束再继续执行下面代码操作
2015/11/24 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
读Javascript高性能编程重点笔记
2016/12/21 Javascript
three.js实现围绕某物体旋转
2017/01/25 Javascript
详解angular 中的自定义指令之详解API
2017/06/20 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
Python计算公交发车时间的完整代码
2020/02/12 Python
python 一维二维插值实例
2020/04/22 Python
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
C语言面试题
2015/10/30 面试题
工地质量标语
2014/06/12 职场文书
学校四风对照检查材料
2014/08/28 职场文书
年检委托书
2014/08/30 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
工作经历证明范本
2015/06/15 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python