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遍历数组的方法分享
Mar 22 PHP
php从数组中随机抽取一些元素的代码
Nov 05 PHP
php利用单例模式实现日志处理类库
Feb 10 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
PHP中使用BigMap实例
Mar 30 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
PHP+MYSQL实现读写分离简单实战
Mar 13 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
Mar 23 PHP
php 处理png图片白色背景色改为透明色的实例代码
Dec 10 PHP
掌握PHP垃圾回收机制详解
Mar 13 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
PHP5中新增stdClass 内部保留类
2011/06/13 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
PHP面相对象中的重载与重写
2017/02/13 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
js 编写规范
2010/03/03 Javascript
javascript date格式化示例
2013/09/25 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
Shell脚本实现Linux系统和进程资源监控
2015/03/05 Javascript
jquery如何获取元素的滚动条高度等实现代码
2015/10/19 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
JavaScript Ajax实现异步通信
2016/12/14 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
解决bootstrap下拉菜单点击立即隐藏bug的方法
2017/06/13 Javascript
js解决软键盘遮挡输入框的问题分享
2017/12/19 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
2020/08/06 Javascript
[06:45]DOTA2卡尔工作室 英雄介绍幻影长矛手篇
2013/07/12 DOTA
用Python进行行为驱动开发的入门教程
2015/04/23 Python
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
利用Python写一个爬妹子的爬虫
2018/06/08 Python
Python常用模块os.path之文件及路径操作方法
2019/12/03 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
基于Python 的语音重采样函数解析
2020/07/06 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
旅游与酒店管理的自我评价分享
2013/11/03 职场文书
一年级语文教学反思
2014/02/13 职场文书
经典广告词大全
2014/03/14 职场文书
产品推广策划方案
2014/05/10 职场文书
第二批党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2015初中政教处工作总结
2015/07/21 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书
Java后台生成图片的完整步骤
2021/08/04 Java/Android