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语法(3)
Oct 09 PHP
PHP 简单数组排序实现代码
Aug 05 PHP
php下通过伪造http头破解防盗链的代码
Jul 03 PHP
php设计模式 Strategy(策略模式)
Jun 26 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
php使用ICQ网关发送手机短信
Oct 30 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
Nginx服务器上安装并配置PHPMyAdmin的教程
Aug 18 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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获取mysql版本的几种方法小结
2008/03/25 PHP
php学习之 认清变量的作用范围
2010/01/26 PHP
php实现utf-8转unicode函数分享
2015/01/06 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
css图片自适应大小
2007/11/28 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
jQuery移动web开发中的页面初始化与加载事件
2015/12/03 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
Postman模拟发送带token的请求方法
2018/03/31 Javascript
vue-cli 3.x 修改dist路径的方法
2018/09/19 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
小程序接口的promise化的实现方法
2019/12/11 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
python中私有函数调用方法解密
2016/04/29 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
标准导师推荐信(医学类)
2013/10/28 职场文书
物业门卫岗位职责
2013/12/28 职场文书
技校学生个人职业生涯规划范文
2014/03/03 职场文书
学校重阳节活动总结
2015/03/24 职场文书
订货会主持词
2015/07/01 职场文书
2019年特色火锅店的创业计划书模板
2019/08/28 职场文书
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js