PHP使用内置函数生成图片的方法详解
原文地址:http://www.poluoluo.com/jzxy/201605/475301.html
本文实例讲述了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()函数来为图片添加文字:
你肯定注意到了,在这里你需要选择字体(此处用的是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使用内置函数生成图片的方法详解的更多相关文章
- [Form Builder]内置函数execute_trigger、do_key详解
转:http://yedward.net/?id=82 1.execute_trigger:用来运行一个指定的触发器,常用来运行用户自定义的触发器. 语法:procedure execute_trig ...
- 局域网内远程连接OPC配置方法详解
局域网内远程连接OPC配置方法详解 https://wenku.baidu.com/view/20fb8ea6d1d233d4b14e852458fb770bf78a3bcc.html OPC服务 ...
- Python day12部分内置函数的常见方法
#内置函数 print(abs(-1))#绝对值 ']))#判断list的真假,都真则真,有一个假也是假 print(any(''))#有一个真就真,全假则假 print(bin(3))#十进制转换二 ...
- Win7下的内置FTP组件的设置详解
在局域网中共享文件,FTP是比较方便的方案之一.Win7内部集成了FTP,只是设置起来颇费一番功夫.着文以记之. 一.安装FTP组件 由于Win7默认没有安装FTP组件.故FTP的设置第一步就是安装F ...
- python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)
1.用我们之前学过的求一下平方(只有一个列表) #求平方 num=[1,5,6,2,7,8] a=[] for n in num: a.append(n**2) print (a) C:\python ...
- Angular2 内置指令 NgFor 和 NgIf 详解
http://www.jb51.net/article/89781.htm 在这一章节中,我们来学习如何使用Angular2来展示数据,以及如何使用它的内置指令NgFor和NgIf 首先要确保你有一个 ...
- python的filter函数的使用方法详解以及使用案例,是否以什么结尾,是否大于什么(判断是True,则留下来)
1.总共有3个人看电影,有2个人看电影经常说话,我们把他们两个过滤出去 move_people=["gouguoqi","beiye_sb","xiu ...
- sql 聚合函数、排序方法详解
聚合函数 count,max,min,avg,sum... select count (*) from T_Employee select Max(FSalary) from T_Employee 排 ...
- php函数addslashes()使用方法详解
实例 在每个双引号(")前添加反斜杠: <?php $str = addslashes('Shanghai is the "biggest" city in Chi ...
随机推荐
- [Nginx] 在Linux下的启动、停止和重加载
Nginx的启动 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 其中-c参数指定配置文件路径. Nginx的停止 ...
- NFS服务器原理
NFS服务器 port:2049 NFS 为 Network FileSystem 的简称,它的目的就是想让不同的机器.不同的操作系统可以彼此分享个别的档案啦!目前在 Unix Like ...
- win7配置SMTP服务
有人说WIN7系统没有SMTP服务 怎么可能呢??? 具体安装步骤如下: 控制面板\程序>打开和关闭Windows功能 Internet信息服务 将 万维网服务>应用程序开发功能> ...
- 未发现oracle(tm)客户端和网络组件
环境:Win7 64位.Oracle 11g 64位.PowerDesigner16.5.instant client12_1 64位. 在用PowerDesigner逆向数据库结构时,配置Oracl ...
- iOS GCD, 同步,异步,串行队列,并行队列,dispatch_group
同步,指代码在同一个线程运行 异步,代码在另一个线程运行 串行队列,提交到该队列的block会顺序执行 并行队列,提交到该队列的block会并发执行 如果想等某一队列中所有block都执行完了在执行一 ...
- MySQL_积分兑换的优惠券在某时间段内使用情况_ 20161215
积分兑换的优惠券在某时间段内使用情况 SELECT a.城市,a.用户ID,a.优惠券ID,a.优惠券名称,a.积分兑换优惠券的张数,b.使用优惠券数量,a.积分兑换优惠券的金额,b.使用优惠券金额 ...
- VC++ 两种动态调整控件位置的方法(CButton设置为Radio形式会出现错误)
((CButton*)GetDlgItem(IDC_CHECK1))->MoveWindow(, cy - , , ); ((CButton*)GetDlgItem(IDC_CHECK2))-& ...
- TextView实现歌词同步
利用TextView实现歌词同步显示,这是一个简单的利用TextView实现滚动实时显示歌词的. 里面的内容都已经写上了详细的注释.里面播放音乐的时候歌词同步展示. 做媒体这块的朋友可以学习一下,练练 ...
- c++保留小数问题,如有不足或错误,欢迎指出
#include<iostream> #include <iomanip> using namespace std; int main() { double a; cin> ...
- java io流之BufferReader&BufferedWriter
BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,而且提供了很实用的readLine,读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高 ...