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取得一个类的属性和方法的实现代码
May 22 PHP
php学习笔记 类的声明与对象实例化
Jun 13 PHP
php UBB 解析实现代码
Nov 27 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
PHP速成大法
Jan 30 PHP
php生成静态html页面的方法(2种方法)
Sep 14 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
Jan 05 PHP
php简单计算年龄的方法(周岁与虚岁)
Dec 06 PHP
Zend Framework常用校验器详解
Dec 09 PHP
PHP新特性之字节码缓存和内置服务器
Aug 11 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
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
JavaScript中URL编码函数代码
2011/01/11 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
jQuery移除或禁用html元素点击事件常用方法小结
2017/02/10 Javascript
javascript获取以及设置光标位置
2017/02/16 Javascript
vue-router 学习快速入门
2017/03/01 Javascript
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
2017/06/05 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
使用Angular CLI进行单元测试和E2E测试的方法
2018/03/24 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
Python json模块使用实例
2015/04/11 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
Python3.5字符串常用操作实例详解
2019/05/01 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
Europcar意大利:汽车租赁
2019/07/07 全球购物
UNIX特点都有哪些
2016/04/05 面试题
机械电子工程毕业生自荐信
2013/11/23 职场文书
合作意向协议书范本
2014/03/31 职场文书
捐款倡议书怎么写
2014/05/13 职场文书
群众路线剖析材料
2014/09/30 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
运动会1000米加油稿
2015/07/21 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
python中sys模块的介绍与实例
2021/04/17 Python