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和AJAX创建RSS聚合器的代码
Mar 13 PHP
在php MYSQL中插入当前时间
Apr 06 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
基于thinkPHP框架实现留言板的方法
Oct 17 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
一个非常实用的php文件上传类
Jul 04 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
Thinkphp5.0框架的Db操作实例分析【连接、增删改查、链式操作等】
Oct 11 PHP
tp5.1框架数据库子查询操作实例分析
May 26 PHP
PHP实现限制域名访问的实现代码(本地验证)
Sep 13 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处理json时中文问题的解决方法
2011/04/12 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP连接MySQL数据的操作要点
2015/03/20 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP 表单提交及处理表单数据详解及实例
2016/12/27 PHP
Ajax+Jpgraph实现的动态折线图功能示例
2019/02/11 PHP
ajaxControlToolkit AutoCompleteExtender的用法
2008/10/30 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
jquery实现带二级菜单的导航示例
2014/04/28 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
使用伪命名空间封装保护独自创建的对象方法
2016/08/04 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
canvas实现环形进度条效果
2017/03/23 Javascript
详解A标签中href=&quot;&quot;的几种用法
2017/08/20 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
python类参数self使用示例
2014/02/17 Python
Python3实现连接SQLite数据库的方法
2014/08/23 Python
Python对数据库操作
2016/03/28 Python
Python出现segfault错误解决方法
2016/04/16 Python
Python实现购物车程序
2018/04/16 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
2019/09/11 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
python使用matplotlib绘制折线图的示例代码
2020/09/22 Python
DELPHI中如何调用API,可举例说明
2014/01/16 面试题
法院信息化建设方案
2014/05/21 职场文书
令人印象深刻的自荐信
2014/05/25 职场文书
员工教育培训协议书
2014/09/27 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2015年三万活动总结
2015/03/25 职场文书
公司表扬信格式
2015/05/04 职场文书
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS