php 画布源代码,PHP中的画布详解
本文主要和大家分享PHP中的画布详解,PHP中的图像处理技术GD,希望能帮助到大家。
创建新画布--资源型数据(可以操作图像资源)
ImageCreate(画布宽,画布高);创建基于调色板的画布。
ImageCreateTrueColor(画布宽,画布高);创建真彩画布。
基于图片创建画布
ImageCreateFromFPG(图片地址);
ImageCreateFromPNG(图片地址);
ImageCreateFromGIF(图片地址);
操作画布
分配颜色:如果需要在画布上使用某个颜色,应该先将颜色分配到画布上。
颜色标识:
$color=ImageColorAllocate(画布资源,R,G,B);RGB为三原色,大小为0~255;
填充画布:
ImageFill(画布资源,填充位置x,填充位置y,颜色标识);填充时对于与填充点连续且颜色相同的点进行填充。
将字符串写到画布上:
ImageString(画布资源,字体,位置x,位置y,字符串内容,字符颜色);
字体为内置字体,大小为1~5号。
字符颜色为前面颜色分配时所写的变量。
得到打开的画布大小:
ImageSX(画布资源);得到画布的宽。
ImageSY(画布资源);得到画布的高。
得到内置字体的大小:
ImageFontWidth(字体号);得到内置字体的宽度。
ImageFontHeight(字体号);得到内置字体的高低。
输出画布
1.输出到图片文件。
2.直接输出到页面。
ImagePNG(画布资源[,文件地址]);
ImageJPEG(画布资源[,文件地址]);
ImageGIF(画布资源[,文件地址]);
实例:验证码
header('Content-Type:image/jpg');
$chars='ABCDEFGHIJKLMNPQRSTUVWXYZ123456789';
$chars_length=strlen($chars);
$code_length=4;
$code='';
for($i=0;$i
$rand_index=mt_rand(0,$chars_length-1);
$code.=$chars[$rand_index];
}
//存储于session,用于验证。
session_start();
$_SESSION['captcha_code']=$code;
//背景图。
$bg_file='./captcha/captcha_bg'.mt_rand(1,5).'.jpg';
$img=ImageCreateFromJPEG($bg_file);
//随机分发颜色
$chars_color=mt_rand(1,2)==1?imagecolorallocate($img,0,0,0):imagecolorallocate($img,255,255,255);
//将字符串写到画布上。
$img_width=ImageSX($img);
$img_height=ImageSY($img);
$font_width=ImageFontWidth(5)*4;
$font_height=ImageFontHeight(5);
$code_width=($img_width-$font_width)/2;
$code_height=($img_height-$font_height)/2;
ImageString($img,5,$code_width,$code_height,$code,$chars_color);
ImageJPEG($img);
php 画布源代码,PHP中的画布详解相关推荐
- Python-Matplotlib可视化(番外篇)——Matplotlib中的事件处理详解与实战
Python-Matplotlib可视化(番外篇)--Matplotlib中的事件处理详解与实战 前言 事件连接 事件属性 实战1:直方图中矩形的拖拽 实战2:鼠标进入和离开 相关链接与参考 前言 在 ...
- Java中JDBC连接数据库详解
今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...
- java做jsp问题_java/jsp中 中文问题详解
java/jsp中 中文问题详解 更新时间:2006年10月13日 00:00:00 作者: 预备知识: 1.字节和unicode Java内核是unicode的,就连class文件也是,但是很多 ...
- Maven中pom文件详解
在IDE中使用Maven IDE工具 MyEclipse 集成maven插件 Eclipse Eclipse For Java EE IDEA 集成Maven插件 在IDE中 配置Maven 指定 ...
- php输出源代码,PHP源代码分析-echo实现详解
PHP源代码分析-echo实现详解 echo,这个是PHP运用得最多的标记之一,算不上是函数,PHP手册里这么写的,因为它没有返回值.今天好奇就去看看PHP的源代码,因为echo不是一般的函数,所以找 ...
- protobuf前后端解析_前端后台以及游戏中使用google-protobuf详解
前端后台以及游戏中使用google-protobuf详解 [TOC] 0.什么是protoBuf protoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,与XML相比,protoBuf更小 ...
- Windows10中Emscripten 安装详解
Windows10中Emscripten 安装详解 Emscripten编译器,是WebAssembly开发的重要工具之一,主要是通过emcc(Emscripten Compiler Frontend ...
- ALSA声卡驱动中的DAPM详解之四:在驱动程序中初始化并注册widget和route
前几篇文章我们从dapm的数据结构入手,了解了代表音频控件的widget,代表连接路径的route以及用于连接两个widget的path.之前都是一些概念的讲解以及对数据结构中各个字段的说明,从本章开 ...
- Asp.net中GridView使用详解(引)【转】
Asp.net中GridView使用详解(引) GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList ...
- Linux中iptraf命令详解(IP局域网监控工具)
2019独角兽企业重金招聘Python工程师标准>>> Linux中iptraf命令详解(IP局域网监控工具) 发布时间:2017-12-27 20:46:03 作者:佚名 ...
最新文章
- 李飞飞谈AI医疗:为什么我要从监督医生洗手开始做起?
- IOS笔记-C语言中的指针与数组
- Ajax跨域请求action方法,无法传递及接收cookie信息(应用于系统登录认证及退出)解决方案
- java工具类去掉字符串String中的.点。android开发java程序员常用工具类
- 【Oracle】Oracle索引
- 新浪微博2-找到用户的accessToken
- aws ec2 php,如何使用php aws sdk启动和停止ec2实例
- [转载]使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案
- android基础开发 书,Android 开发基础
- MacOS如何设置不使用时退出登录用户账号
- Atitit 企业6大职能 attilax总结
- php宠物管理系统源码,爱心宠物医院管理系统
- JAVA —— ArrayList集合习题(共四题)
- 人人都是产品经理2.0
- 微信小程序展示弹窗的几种方式
- (八)51单片机基础——LED点阵屏
- 弹出登录框 您未被授权查看该页 的解决办法
- Java中Springboot实战之签到功能详解(超全面)
- 袋鼠云数据湖平台「DataLake」,存储全量数据,打造数字底座
- 解决win7防火墙打不开的问题:错误代码1079和错误代码13