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音乐采集(部分代码)
Feb 14 PHP
php设计模式之命令模式使用示例
Mar 02 PHP
神盾加密解密教程(二)PHP 神盾解密
Jun 08 PHP
CMS中PHP判断系统是否已经安装的方法示例
Jul 26 PHP
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
Mar 25 PHP
PHP实现在线阅读PDF文件的方法
Jun 17 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
微信开发之网页授权获取用户信息(二)
Jan 08 PHP
php cookie工作原理与实例详解
Jul 18 PHP
解决出现SoapFault (looks like we got no XML document)的问题
Jun 24 PHP
PHP使用星号替代用户名手机和邮箱的实现代码
Feb 07 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 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
关于PHP中的Class的几点个人看法
2006/10/09 PHP
PHP无限分类(树形类)
2013/09/28 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
php文件压缩之PHPZip类用法实例
2015/06/18 PHP
ThinkPHP简单使用memcache缓存的方法
2016/11/15 PHP
PHP单例模式数据库连接类与页面静态化实现方法
2019/03/20 PHP
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
nodejs通过phantomjs实现下载网页
2015/05/04 NodeJs
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
有关suggest快速删除后仍然出现下拉列表的bug问题
2016/12/02 Javascript
Popup弹出框添加数据实现方法
2017/10/27 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
JS简易计算器实例讲解
2020/06/30 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
Python实现新浪博客备份的方法
2016/04/27 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Python3实现汉语转换为汉语拼音
2019/07/08 Python
关于python字符串方法分类详解
2019/08/20 Python
如何查看python关键字
2021/01/17 Python
python pygame 愤怒的小鸟游戏示例代码
2021/02/25 Python
音乐教学反思
2014/02/02 职场文书
公证书标准格式
2014/04/10 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
2014年纪检工作总结
2014/11/12 职场文书
2014年体育部工作总结
2014/11/13 职场文书
六五普法学习心得体会
2016/01/21 职场文书
2019个人工作总结
2019/06/21 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL