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 相关文章推荐
PHP4在WinXP下IIS和Apache2服务器上的安装实例
Oct 09 PHP
详解PHP显示MySQL数据的三种方法
Jun 05 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
php递归获取目录内文件(包含子目录)封装类分享
Dec 25 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
Apr 29 PHP
Destoon实现多表查询示例
Aug 21 PHP
Yii2创建控制器(createController)方法详解
Jul 23 PHP
php字符串操作针对负值的判断分析
Jul 28 PHP
Yii2 队列 shmilyzxt/yii2-queue 简单概述
Aug 02 PHP
Laravel框架用户登陆身份验证实现方法详解
Sep 14 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
PHP中用hash实现的数组
2011/07/17 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
PHP二维关联数组的遍历方式(实例讲解)
2017/10/18 PHP
js鼠标左右键 键盘值小结
2010/06/11 Javascript
来自qq的javascript面试题
2010/07/24 Javascript
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
Javascript中的数组常用方法解析
2016/06/17 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
2016/08/02 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
小程序开发基础之view视图容器
2018/08/21 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
Python+Socket实现基于UDP协议的局域网广播功能示例
2017/08/31 Python
详解python中init方法和随机数方法
2019/03/13 Python
Python如何转换字符串大小写
2020/06/04 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
H5新属性audio音频和video视频的控制详解(推荐)
2016/12/09 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
麦德龙官方海外旗舰店:德国麦德龙超市
2017/12/23 全球购物
澳大利亚便宜隐形眼镜购买网站:QUICKLENS Australia
2018/10/06 全球购物
英国领先的维生素和营养补充剂直接供应商:Healthspan
2019/04/22 全球购物
泰国排名第一的家居用品中心:HomePro
2020/11/18 全球购物
项目合作计划书
2014/01/09 职场文书
20岁生日感言
2014/01/13 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
培训协议书范本
2014/04/22 职场文书
小学生个人先进事迹材料
2014/05/08 职场文书
县级文明单位申报材料
2014/05/23 职场文书
食品安全宣传标语
2014/06/07 职场文书
片区教研活动总结
2014/07/02 职场文书
Jupyter notebook 输出部分显示不全的解决方案
2021/04/24 Python