php输出图像的方法实例分析


Posted in PHP onFebruary 16, 2017

本文实例讲述了php输出图像的方法。分享给大家供大家参考,具体如下:

PHP作为一种Web语言,无论是解析出的HTML代码还是二进制的图片,最终都要通过浏览器显示。应用GD2函数绘制图像首先需要用header()函数发送HTTP头信息给浏览器,告知所要输出的图像的类型,然后应用imagegif()函数、imagejpeg()函数或者imagepng()函数等分别输出GIF,JPG和PNG格式的图片。

header(string,replace,http_response_code)


参数 描述
string 必需。规定要发送的报头字符串。
replace 可选。指示该报头是否替换之前的报头,或添加第二个报头。 默认是 true(替换)。false(允许相同类型的多个报头)。
http_response_code 可选。把 HTTP 响应代码强制为指定的值。(PHP 4 以及更高版本可用)

bool imagegif( resource $image[, string $filename] )

imagegif()函数从image图像以filename为文件名创建一个GIF图像。image参数是imagecreate()或imagecreatefromgif()等创建图像函数的返回值,图像格式为GIF。如果应用imagecolortransparent()函数,则图像设置为透明,格式即为gif。filename参数为可选,如果省略,则原始图像流将被直接输出。

imagejpeg()imagepng()函数的使用方法与imagegif()函数的使用方法类似,这里不再讨论。

例如:

首先应用header()函数发送HTTP头信息给浏览器告知输出的媒体类型,在这里输出GIF格式的图片,然后创建一副192*36像素的画布,并在画布上绘制"I Like PHP"的文字,最后应用函数imagegif()输出所创建的图像。

<?php
 header("Content-type:image/gif");
 $image = imagecreatetruecolor(192,36); //新建图像
 $trans_color = imagecolorAllocate($image,200,200,200); //分配一个灰色
 imagefill($image,0,0,$trans_color); // 从左上角开始填充灰色
 $color = imagecolorallocate($image,255,0,255); //设置图像中文字的颜色
 imagettftext($image,18,0,50,26,$color,"arial.ttf","I Like PHP");//输出文字
 imagegif($image);//输出图像
 imagedestroy($image);//释放内存空间

运行结果为:

php输出图像的方法实例分析

代码解析:

imagecreatetruecolor(int x,int y)建立的是一幅大小为x和y的黑色图像(默认为黑色),如想改变背景颜色则需要用填充颜色函数imagefill($img,0,0,$color);

imagecreate 新建一个空白图像资源,用imagecolorallocate()添加背景色

array Imagettftext(int im, int size, int angle, int x, int y, int col, string fontfile, string text);

本函数将 TTF (TrueType Fonts) 字型文字写入图片。参数 size 为字形的尺寸;angle 为字型的角度,顺时针计算,0 度为水平,也就是三点钟的方向 (由左到右),90 度则为由下到上的文字;x,y 二参数为文字的坐标值 (原点为左上角);参数 col 为字的颜色;fontfile 为字型文件名称,亦可是远端的文件;text 当然就是字符串内容了。返回值为数组,包括了八个元素,头二个分别为左下的x、y 坐标,第三、四个为右下角的 x、y 坐标,第五、六及七、八二组分别为右上及左上的 x、y 坐标。

注意此函数中的fontfile的路径问题,上例中,字体文件和PHP文件处于同一个目录中。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP 编程的 5个良好习惯
Feb 20 PHP
php 各种应用乱码问题的解决方法
May 09 PHP
php的array_multisort()使用方法介绍
May 16 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
PHP连接SQLServer2005方法及代码
Dec 26 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
PHP获得数组交集与差集的方法
Jun 10 PHP
jquery获取多个checkbox的值异步提交给php的方法
Jun 24 PHP
php开发微信支付获取用户地址
Oct 04 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
Smarty模板配置实例简析
Jul 20 PHP
Laravel框架源码解析之模型Model原理与用法解析
May 14 PHP
替换php字符串中的单引号为双引号的方法
Feb 16 #PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 #PHP
php使用PDO事务配合表格读取大量数据插入操作实现方法
Feb 16 #PHP
php的PDO事务处理机制实例分析
Feb 16 #PHP
php使用include 和require引入文件的区别
Feb 16 #PHP
Yii2实现UploadedFile上传文件示例
Feb 15 #PHP
使用PHPMailer发送邮件实例
Feb 15 #PHP
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
PHP5 面向对象程序设计
2008/02/13 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
2009/05/02 PHP
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
表单提交验证类
2006/07/14 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
js操作输入框中选择内容兼容IE及其他主流浏览器
2014/04/22 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
2015/01/22 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
实战node静态文件服务器的示例代码
2018/03/08 Javascript
vue.js中proxyTable 转发请求的实现方法
2018/09/20 Javascript
jquery向后台提交数组的代码分析
2020/02/20 jQuery
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
pip安装py_zipkin时提示的SSL问题对应
2018/12/29 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
PHP中如何创建和修改数组
2012/05/02 面试题
Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型
2013/10/30 面试题
网游商务专员求职信
2013/10/15 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
服务承诺书范文
2014/05/19 职场文书
红旗渠导游词
2015/02/09 职场文书
2015年煤矿安全工作总结
2015/05/23 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
解决Pytorch中关于model.eval的问题
2021/05/22 Python
Golang 入门 之url 包
2022/05/04 Golang