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在DOS命令行下却无法链接MySQL的技术笔记
Dec 29 PHP
使用PHP生成二维码的两种方法(带logo图像)
Mar 14 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
php实现的IMEI限制的短信验证码发送类
May 05 PHP
试用php中oci8扩展
Jun 18 PHP
PHP模拟asp中response类实现方法
Aug 08 PHP
使用正则去除php代码中的注释方法
Nov 03 PHP
php array_walk 对数组中的每个元素应用用户自定义函数详解
Nov 18 PHP
php实现和c#一致的DES加密解密实例
Jul 24 PHP
PHP使用XMLWriter读写xml文件操作详解
Jul 31 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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
PHPUnit安装及使用示例
2014/10/29 PHP
JS小功能(操作Table--动态添加删除表格及数据)实现代码
2013/11/28 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
javascript表单正则应用
2017/02/04 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
微信小程序使用slider设置数据值及switch开关组件功能【附源码下载】
2017/12/09 Javascript
解决使用Vue.js显示数据的时,页面闪现原始代码的问题
2018/02/11 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
JS中如何轻松遍历对象属性的方式总结
2019/08/06 Javascript
Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)
2019/11/21 Javascript
你应该知道的python列表去重方法
2017/01/17 Python
python使用opencv读取图片的实例
2017/08/17 Python
关于Python如何避免循环导入问题详解
2017/09/14 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python lambda表达式(匿名函数)写法解析
2019/09/16 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
Pytorch之parameters的使用
2019/12/31 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
军用级手机壳,专为冒险而建:Zizo Wireless
2019/08/07 全球购物
请解释流与文件有什么不同
2016/07/29 面试题
中学生自我评价范文
2014/02/08 职场文书
违纪检讨书2000字
2014/02/08 职场文书
股东合作协议书
2014/04/14 职场文书
人力资源职位说明书
2014/07/29 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
三严三实民主生活会发言稿
2014/10/13 职场文书
2015年度班主任自我评价
2015/03/11 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
2015年助理政工师工作总结
2015/05/26 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
MySQL系列之五 视图、存储函数、存储过程、触发器
2021/07/02 MySQL
使用Python+OpenCV进行卡类型及16位卡号数字的OCR功能
2021/08/30 Python
使用Redis做预定库存缓存功能
2022/04/02 Redis