PHP使用内置函数生成图片的方法详解


Posted in PHP onMay 09, 2016

本文实例讲述了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()函数来为图片添加文字:

imagettftext($myImage, 12, 0, 5, 20, $black, "Fonts/Oblivious font.ttf",  "这是要显示的内容");

你肯定注意到了,在这里你需要选择字体(此处用的是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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
用PHP产生动态的影像图
Oct 09 PHP
php ignore_user_abort与register_shutdown_function 使用方法
Jun 14 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
php对csv文件的读取,写入,输出下载操作详解
Aug 10 PHP
修改ThinkPHP缓存为Memcache的方法
Jun 25 PHP
推荐十款免费 WordPress 插件
Mar 24 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP递归遍历指定文件夹内的文件实现方法
Nov 15 PHP
ThinkPHP3.2.3框架实现执行原生SQL语句的方法示例
Apr 03 PHP
php新建文件的方法实例
Sep 26 PHP
通过PHP实现用户注册后邮箱验证激活
Nov 10 PHP
php时间计算相关问题小结
May 09 #PHP
php数据访问之查询关键字
May 09 #PHP
php简单实现短网址(短链)还原的方法(测试可用)
May 09 #PHP
php数据访问之增删改查操作
May 09 #PHP
php简单实现批量上传图片的方法
May 09 #PHP
php简单备份与还原MySql的方法
May 09 #PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 #PHP
You might like
十天学会php之第十天
2006/10/09 PHP
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php class中public,private,protected的区别以及实例分析
2013/06/18 PHP
php实现插入排序
2015/03/29 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
php对接java现实加签验签的实例
2016/11/25 PHP
JavaScript面向对象之体会[总结]
2008/11/13 Javascript
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
js实现图片放大缩小功能后进行复杂排序的方法
2012/11/08 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
Javascript编程之继承实例汇总
2015/11/28 Javascript
jQuery插件echarts实现的去掉X轴、Y轴和网格线效果示例【附demo源码下载】
2017/03/04 Javascript
socket.io实现在线群聊功能
2017/04/07 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
jQuery中each方法的使用详解
2018/03/18 jQuery
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
layui table 获取分页 limit的方法
2019/09/20 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
举例详解Python中的split()函数的使用方法
2015/04/07 Python
python中enumerate函数遍历元素用法分析
2016/03/11 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
python 实现分页显示从es中获取的数据方法
2018/12/26 Python
python 获取等间隔的数组实例
2019/07/04 Python
Django正则URL匹配实现流程解析
2020/11/13 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
基于css3实现漂亮便签样式
2013/03/18 HTML / CSS
Darphin迪梵官网: 来自巴黎,植物和精油调制的护肤品牌
2016/10/11 全球购物
项目专员岗位职责
2013/12/04 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
股东合作协议书范本
2014/04/14 职场文书
2014国庆黄金周超市促销活动方案
2014/09/21 职场文书
简单聊一聊SQL注入及防止SQL注入
2022/03/23 MySQL
JS轻量级函数式编程实现XDM三
2022/06/16 Javascript