PHP使用内置函数生成图片的方法详解
原文地址:http://www.poluoluo.com/jzxy/201605/475301.html
本文实例讲述了PHP使用内置函数生成图片的方法。分享给大家供大家参考,具体如下:
第一步:创建图片
新建一个php文件,命名为new-image.php(你可以任意命名,方便后面的调用就行)。
php中有两个函数创建一张图片:mageCreate()创建一张空图片;ImageCreateFromPng()以现有的png图片为背景来创建一张图片。(这里的”Png”可以替换为”jpg”或”gif”,根据背景图片的格式来确定)
$myImage=ImageCreate(400,60); //参数为宽度和高度 $myImage=ImageCreateFromJpg("http://farm5.static.flickr.com/418978874_c349c14359_o.jpg");
无论你使用了上面的哪一种方法,我们就创建好了一张图片,并把图片存到了$myImage这个变量中。
第二步:添加颜色
这时我们需要通过ImageColorAllocate()函数来创建一些颜色,把他们存到变量中,方便后面使用。
$white=ImageColorAllocate($myImage, 255, 255, 255); $black=ImageColorAllocate($myImage, 0, 0, 0); $red=ImageColorAllocate($myImage, 255, 0, 0); $green=ImageColorAllocate($myImage, 0, 255, 0); $blue=ImageColorAllocate($myImage, 0, 0, 255);
第三步:绘制图形
你还可以使用php的一些内置函数来添加一些几何图形:
ImageEllipse() //绘制椭圆 ImageArc() //绘制曲线 ImagePolygon() //绘制多边形 ImageRectangle() //绘制矩形 ImageLine() //绘制线条
下面是一个例子
ImageRectangle($myImage, 50, 20, 200, 15, $blue);
这时,你会发现只绘制了矩形的轮廓,如果你想要的是填充的矩形,使用ImageFilledRectangle()方法:
ImageFilledRectangle($myImage, 50, 20, 200, 15, $blue);
第四步:添加文字
我们可以使用imagettftext()函数来为图片添加文字:
你肯定注意到了,在这里你需要选择字体(此处用的是Fonts/Oblivious font.ttf, 你可以使用你自己的喜欢的字体)。 如果不知道如何来获取字体,可以google一下,上面有很多的下载字体的网站,里面的内容足够让你眼花缭乱了。
第五步:生成图片
当你成功的绘制好了你要显示的图片,接下来就要把它显示在页面中了。首先要做的是,告诉页面,你要向他发送的数据是一张图片:
//这里的png可以换成jpg,或者是gif,根据你要生成的图片格式来确定 header("Content-type:image/png"); ImagePng($myImage);
接下来,因为我们不在需要$myImage这个变量了,我们需要把它的内存释放掉:
ImageDestroy($myImage);
第六步:调用图片
通过前面的五步,我们已经创建了一张图片,下面给大家说一下如何调用这张创建好了的图片。
在HTML文件中,我们使用url来引入这张图片:
<img src="new-image.php的路径" alt="myImage" /> //在src中,写入new-image.php文件的路径,你就会发现刚才创建的图片已经被成功的调用了
利用imagepng()可生成一个图片文件
<?php imagepng($myImage,"xxx.jpg"); ?>
例如:
<?php $myImage=ImageCreate(400,60); //参数为宽度和高度 $white=ImageColorAllocate($myImage, 255, 255, 255); $black=ImageColorAllocate($myImage, 0, 0, 0); $red=ImageColorAllocate($myImage, 255, 0, 0); $green=ImageColorAllocate($myImage, 0, 255, 0); $blue=ImageColorAllocate($myImage, 0, 0, 255); imagettftext($myImage, 12, 0, 5, 20, $red, "stxingka.ttf", "果冻 Elvis"); ?> <?php imagepng($myImage,"xxx.jpg"); ?>
以上代码将在根目录下生成一个xxx.jpg的图片文件。
PHP使用内置函数生成图片的方法详解的更多相关文章
- [Form Builder]内置函数execute_trigger、do_key详解
转:http://yedward.net/?id=82 1.execute_trigger:用来运行一个指定的触发器,常用来运行用户自定义的触发器. 语法:procedure execute_trig ...
- 局域网内远程连接OPC配置方法详解
局域网内远程连接OPC配置方法详解 https://wenku.baidu.com/view/20fb8ea6d1d233d4b14e852458fb770bf78a3bcc.html OPC服务 ...
- Python day12部分内置函数的常见方法
#内置函数 print(abs(-1))#绝对值 ']))#判断list的真假,都真则真,有一个假也是假 print(any(''))#有一个真就真,全假则假 print(bin(3))#十进制转换二 ...
- Win7下的内置FTP组件的设置详解
在局域网中共享文件,FTP是比较方便的方案之一.Win7内部集成了FTP,只是设置起来颇费一番功夫.着文以记之. 一.安装FTP组件 由于Win7默认没有安装FTP组件.故FTP的设置第一步就是安装F ...
- python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)
1.用我们之前学过的求一下平方(只有一个列表) #求平方 num=[1,5,6,2,7,8] a=[] for n in num: a.append(n**2) print (a) C:\python ...
- Angular2 内置指令 NgFor 和 NgIf 详解
http://www.jb51.net/article/89781.htm 在这一章节中,我们来学习如何使用Angular2来展示数据,以及如何使用它的内置指令NgFor和NgIf 首先要确保你有一个 ...
- python的filter函数的使用方法详解以及使用案例,是否以什么结尾,是否大于什么(判断是True,则留下来)
1.总共有3个人看电影,有2个人看电影经常说话,我们把他们两个过滤出去 move_people=["gouguoqi","beiye_sb","xiu ...
- sql 聚合函数、排序方法详解
聚合函数 count,max,min,avg,sum... select count (*) from T_Employee select Max(FSalary) from T_Employee 排 ...
- php函数addslashes()使用方法详解
实例 在每个双引号(")前添加反斜杠: <?php $str = addslashes('Shanghai is the "biggest" city in Chi ...
随机推荐
- CVPR 2007 Learning to detect a salient object
Dataset: MSRA A&B are introduced in this paper. A conditional Random Field based method was prop ...
- 《CoffeeScript应用开发》学习: CoffeeScript高级用法
正确的上下文 使用胖箭头=>表示将回调函数绑定到this对象. class t func: (callback)-> if callback? setTimeout callback(), ...
- SQL select 语法(转)
SQL 里面最常用的命令是 SELECT 语句,用于检索数据.语法是: SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expr ...
- Modern Operating Systems(Ⅰ)——2014.12.15
进程 进程模型 进程就是一个正在执行的程序的实例 值得注意的是,若一个程序运行了两遍,则算作两个进程 创建进程 在通用系统中,有四种主要事件导致进程的创建 ①系统的初始化 ②执行了 正在 ...
- 100 Door Puzzle
问题重述: There are 100 doors in a long hallway. They are all closed. The first time you walk by each do ...
- Android 在Canvas中实现画笔效果(一)--钢笔
如题: 公司要求做一个涂鸦板,要有钢笔.毛笔等画笔效果,网上搜了很多,可是效果不怎么好,决定自己研究下.废话不多说,进入正题. 首先,赛贝尔曲线弄明白了,在画曲线的过程中就是一条条的向量. 第二,曲线 ...
- sqlserver存取过程游标
ALTER proc [dbo].[common_proc_temp2] as begin declare @id varchar(50); declare @cbcontractid varchar ...
- transfromjs动画效果
记得以前facebook做过一款HTML5游戏.开场动画是一块软体类似豆腐的东西一起摇摆.类似的效果如下面的gif所示: facebook当时使用的是createjs下的子项目easeljs和twee ...
- 在GMIC听“移动互联网+医疗”的感受 2015-04-29
“互联网+”这个词挺火的,基本格式是“互联网+传统行业”,比如医疗.教育.交通等等.就更别说电子商务.金融这些领域了,相比已经和互联网分不 开了.在我看来,互联网+的背后,是信息化.智能化.信息沟通的 ...
- HDU 1285 确定比赛名次 拓扑排序模板题
http://acm.hdu.edu.cn/showproblem.php?pid=1285 #include <cstdio> #include <cstdlib> #inc ...