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 相关文章推荐
AJAX for PHP简单表数据查询实例
Jan 02 PHP
php小偷相关截取函数备忘
Nov 28 PHP
php 日期和时间的处理-郑阿奇(续)
Jul 04 PHP
php读取3389的脚本
May 06 PHP
php去除html标记的原生函数详解
Jan 27 PHP
php计算整个mysql数据库大小的方法
Jun 19 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
Dec 15 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
php实现与python进行socket通信的方法示例
Aug 30 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 PHP
php+lottery.js实现九宫格抽奖功能
Jul 21 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者的疑难问答(1)
2006/10/09 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 1)
2007/03/10 Javascript
百度 popup.js 完美修正版非常的不错 脚本之家推荐
2009/04/17 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
JavaScript使用slice函数获取数组部分元素的方法
2015/04/06 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
详解vue-Resource(与后端数据交互)
2017/01/16 Javascript
vue+SSM实现验证码功能
2018/12/07 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
JS面试题中深拷贝的实现讲解
2020/05/07 Javascript
解决Vue项目中tff报错的问题
2020/10/21 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
python实现排序算法
2014/02/14 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
python之mock模块基本使用方法详解
2019/06/27 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
python实现LRU热点缓存及原理
2019/10/29 Python
python计算导数并绘图的实例
2020/02/29 Python
Python函数生成器原理及使用详解
2020/03/12 Python
Python PIL库图片灰化处理
2020/04/07 Python
实习老师个人总结的自我评价
2013/09/28 职场文书
求职简历推荐信范文
2013/12/02 职场文书
《日月潭》教学反思
2014/02/28 职场文书
蓝颜请假条
2014/04/11 职场文书
产品销售计划书
2014/05/04 职场文书
关于感恩的演讲稿400字
2014/08/26 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP