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中实现动态代理
Oct 09 PHP
投票管理程序
Oct 09 PHP
PHP6 先修班 JSON实例代码
Aug 23 PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 PHP
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
Jun 21 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
PHP错误Cannot use object of type stdClass as array in错误的解决办法
Jun 12 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
PHP Ajax实现无刷新附件上传
Aug 17 PHP
CI框架入门之MVC简单示例
Nov 21 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
PHP文件操作简单介绍及函数汇总
Dec 11 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操作MongoDB基础教程(连接、新增、修改、删除、查询)
2014/03/25 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP创建对象的六种方式实例总结
2019/06/27 PHP
鼠标图片振动代码
2006/07/06 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
jquery中获取select选中值的代码
2011/06/27 Javascript
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
Jquery each方法跳出循环,并获取返回值(实例讲解)
2013/12/12 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
2016/07/18 Javascript
jQuery中的一些小技巧
2017/01/18 Javascript
JavaScript实现的选择排序算法实例分析
2017/04/14 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
2017/09/16 Javascript
Angular 4根据组件名称动态创建出组件的方法教程
2017/11/01 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
在Python中编写数据库模块的教程
2015/04/29 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
python 中xpath爬虫实例详解
2019/08/26 Python
Python中无限循环需要什么条件
2020/05/27 Python
python 读取.nii格式图像实例
2020/07/01 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
Html5应用程序缓存(Cache manifest)
2018/06/04 HTML / CSS
公共汽车、火车和飞机票的通用在线预订和销售平台:INFOBUS
2019/11/30 全球购物
个人找工作的自我评价
2013/10/17 职场文书
党的生日活动方案
2014/08/15 职场文书
2014年科普工作总结
2014/12/06 职场文书
区域销售大会开幕词
2016/03/04 职场文书
pycharm代码删除恢复的方法
2021/06/26 Python
Go语言基础知识点介绍
2021/07/04 Golang
DSP接收机前端设想
2022/04/05 无线电