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 相关文章推荐
escape unescape的php下的实现方法
Apr 27 PHP
php 友好URL的实现(吐血推荐)
Oct 04 PHP
解析PHP中VC6 X86和VC9 X86的区别及 Non Thread Safe的意思
Jun 28 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
Jul 15 PHP
laravel 4安装及入门图文教程
Oct 29 PHP
thinkphp循环结构用法实例
Nov 24 PHP
php生成shtml类用法实例
Dec 09 PHP
php判断文件夹是否存在不存在则创建
Apr 09 PHP
用PHP代码在网页上生成图片
Jul 01 PHP
PHP仿微信发红包领红包效果
Oct 30 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 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 购物车的例子
2009/05/04 PHP
php中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP实现JS中escape与unescape的方法
2016/07/11 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP框架自动加载类文件原理详解
2017/06/06 PHP
菜单效果
2006/10/14 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
使用jquery实现简单的ajax
2013/07/08 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
利用jQuery实现简单的拖曳效果实例代码
2017/10/20 jQuery
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
JavaScript面试技巧之数组的一些不low操作
2019/03/22 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
django框架如何集成celery进行开发
2017/05/24 Python
python实现用户管理系统
2018/01/10 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
Pandas:Series和DataFrame删除指定轴上数据的方法
2018/11/10 Python
django配置连接数据库及原生sql语句的使用方法
2019/03/03 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
生日派对邀请函
2014/01/13 职场文书
幼儿园春游活动方案
2014/01/19 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
家长会标语
2014/06/24 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
《称赞》教学反思
2016/02/17 职场文书
车位出租协议书范本
2016/03/19 职场文书
如何设置多台电脑共享打印机?多台电脑共享打印机的方法
2022/04/08 数码科技