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(3)
Oct 09 PHP
同台服务器使用缓存APC效率高于Memcached的演示代码
Feb 16 PHP
介绍一些PHP判断变量的函数
Apr 24 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
PHP中is_file()函数使用指南
May 08 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
PHP会话操作之cookie用法分析
Sep 28 PHP
php实现基于PDO的预处理示例
Mar 28 PHP
PHP策略模式定义与用法示例
Jul 27 PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 PHP
PHP环形链表实现方法示例
Sep 15 PHP
yii2.0框架场景的简单使用示例
Jan 25 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 zend解密软件绿色版测试可用
2008/04/14 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
教你如何解密 “ PHP 神盾解密工具 ”
2014/06/20 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
实现只能输入数字的input不用replace方法
2013/09/12 Javascript
快速解决jquery之get缓存问题的最简单方法介绍
2013/12/19 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
js获取 type=radio 值的方法
2014/05/09 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
jQuery实现可展开合拢的手风琴面板菜单
2015/09/15 Javascript
基于jQuery实现以手风琴方式展开和折叠导航菜单
2016/01/28 Javascript
JavaScript作用域示例详解
2016/07/07 Javascript
使用jquery如何获取时间
2016/10/13 Javascript
canvas实现粒子时钟效果
2017/02/06 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
Web开发使用Angular实现用户密码强度判别的方法
2017/09/27 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
[36:20]完美世界DOTA2联赛PWL S3 access vs Rebirth 第一场 12.17
2020/12/18 DOTA
Python实现SVN的目录周期性备份实例
2015/07/17 Python
深入理解Django的自定义过滤器
2017/10/17 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
Python中如何导入类示例详解
2019/04/17 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
美国中小型企业领先的办公家具供应商:Office Designs
2016/11/26 全球购物
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
合法的离婚协议书范本
2014/10/23 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
手残删除python之后的补救方法
2021/06/26 Python