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 相关文章推荐
PHP 截取字符串 分别适合GB2312和UTF8编码情况
Feb 12 PHP
数据库中排序的对比及使用条件详解
Feb 23 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
PHP实现加强版加密解密类实例
Jul 29 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
Yii针对添加行的增删改查操作示例
Oct 18 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
Bootstrap+PHP实现多图上传功能实例详解
Apr 08 PHP
laravel框架邮箱认证实现方法详解
Nov 22 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
世界上第一台立体声收音机
2021/03/01 无线电
Apache设置虚拟WEB
2006/10/09 PHP
php include加载文件两种方式效率比较
2010/08/08 PHP
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
ThinkPHP模板Switch标签用法示例
2014/06/30 PHP
PHP框架实现WebSocket在线聊天通讯系统
2019/11/21 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
最流行的Node.js精简型和全栈型开发框架介绍
2015/02/26 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
AngularJS基础 ng-dblclick 指令用法
2016/08/01 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
maptalks+three.js+vue webpack实现二维地图上贴三维模型操作
2020/08/10 Javascript
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
vue 通过base64实现图片下载功能
2020/12/19 Vue.js
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现bucket排序算法实例分析
2015/05/04 Python
python对象及面向对象技术详解
2016/07/19 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
python excel使用xlutils类库实现追加写功能的方法
2018/05/02 Python
利用python打开摄像头及颜色检测方法
2018/08/03 Python
python3.7添加dlib模块的方法
2020/07/01 Python
Pyqt助手安装PyQt5帮助文档过程图解
2020/11/20 Python
美国女性服饰销售网站:Nasty Gal(坏女孩)
2016/07/26 全球购物
酒店总经理助理岗位职责
2014/02/01 职场文书
网络工程师专家职业发展路线
2014/02/14 职场文书
企业文化标语大全
2014/06/10 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
2015年政府采购工作总结
2015/05/21 职场文书