16/7/11_PHP-GD库介绍

GD库简介

GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。

PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理。GD库常用在图片加水印,验证码生成等方面。

PHP默认已经集成了GD库,只需要在安装的时候开启就行。

header("content-type: image/png");
$img=imagecreatetruecolor(100, 100);
$red=imagecolorallocate($img, 0xFF, 0x00, 0x00);
imagefill($img, 0, 0, $red);
imagepng($img);
imagedestroy($img);

绘制线条

要对图形进行操作,首先要新建一个画布,通过imagecreatetruecolor函数可以创建一个真彩色的空白图片:

$img = imagecreatetruecolor(100, 100);

GD库中对于画笔所用的颜色,需要通过imagecolorallocate函数进行分配,通过参数设定RGB的颜色值来确定画笔的颜色:

$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);

然后我们通过调用绘制线段函数imageline进行线条的绘制,通过指定起点跟终点来最终得到线条。

imageline($img, 0, 0, 100, 100, $red);

线条绘制好以后,通过header与imagepng进行图像的输出。

header("content-type: image/png");
imagepng($img);

最后可以调用imagedestroy释放该图片占用的内存。

imagedestroy($img);

通过上面的步骤,可以发现PHP绘制图形非常的简单,但很多时候我们不只是需要输出图片,可能我们还需要得到一个图片文件,可以通过imagepng函数指定文件名将绘制后的图像保存到文件中。

imagepng($img, ‘img.png‘);

在图像中绘制文字

GD库可以进行多种图形的基本操作,常用的有绘制线条,背景填充,画矩形,绘制文字等。

跟绘制线条类似,首先需要新建一个图片与初始化颜色。

$img = imagecreatetruecolor(100, 100);
$red = imagecolorallocate($img, 0xFF, 0x00, 0x00);

然后使用imagestring函数来进行文字的绘制,这个函数的参数很多:imagestring ( resource $image , int $font , int $x , int $y , string $s , int $col ),可以通过$font来设置字体的大小,x,y设置文字显示的位置,$s是要绘制的文字,$col是文字的颜色。

imagestring($img, 5, 0, 0, "Hello world", $red);
header("content-type: image/png");
imagepng($img);
imagedestroy($img);

输出图像文件

前面我们已经了解到,通过imagepng可以直接输出图像到浏览器,但是很多时候,我们希望将处理好的图像保存到文件,以便可以多次使用。通过指定路径参数将图像保存到文件中。

$filename = ‘img.png‘;
imagepng($img, $filename);

使用imagepng可以将图像保存成png格式,如果要保存成其他格式需要使用不同的函数,使用imagejpeg将图片保存成jpeg格式,imagegif将图片保存成gif格式,需要说明的是,imagejpeg会对图片进行压缩,因此还可以设置一个质量参数。

$filename = ‘img.jpg‘;
?imagejpeg($img, $filename, 80);
时间: 2024-10-28 07:33:33

16/7/11_PHP-GD库介绍的相关文章

烂泥:centos单独编译安装gd库

本文由秀依林枫提供友情赞助,首发于烂泥行天下. 这几天一直在弄一个商城系统,该系统的源码及数据库都已经上传并创建完毕.但是在安装该系统时,却提示缺少gd库.如下: 使用php探针查看,发现php确实没有安装gd库.如下: 目前服务器的环境是nginx+php-fpm,php使用源码最小化安装,所以就没有安装gd库.尽管没有安装gd库,但是我们还是可以通过单独编译安装gd库. 下面我们就开始来介绍如何给已经编译好的php环境安装gd库.gd库的安装分以下几个步骤: 1.gd库是什么 2.安装lib

PHP学习笔记-GD库与Jpgraph的使用

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/52281196 本文出自:[顾林海的博客] 前言 学习PHP从第一篇笔记到现在这篇,已经十多篇了,每天花时间去学习是需要毅力的,好在自己对IT这行也是比较感兴趣,算是每天自娱自乐吧,下周一就去考科目三了,想想也是醉了,拖这么长时间. GD库 GD库是一个开放的动态创建图像.源代码公开的函数库,可以从官方网站http://www.boutell.com/gd处下载.目前,

php 简易验证码(GD库)

论坛中为了防止灌水,出现了很多的验证码的插件,现在这里介绍一个非常简单的自定义验证码函数,这个验证码实现的原理就是通过php扩展的gd库来实现的. 给出百度百科对验证码的定义"验证码(CAPTCHA)是"Completely Automated Public Turing test to tell Computers and Humans Apart"(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序.可以防止:恶意破解密码.刷票.论坛灌

GD库(一)

PHP动态图像处理 一.支持:需要php支持gd库 phpinfo() 二.绘画步骤: 0.一定要添加header()函数送content-type通知浏览器这次发送的是图片而不是文本 1. 创建一个画布(画板).画笔.色彩. 2. *开始绘画 3. 输出图像(复制型) 4. 销毁图像资源(释放内存) 代码: 1 header("Content-Type:image/png"); 1.创建一个画布,颜色 1 $im = imagecreate(200,200); 2 $red = im

GD库使用小结---2

接着上一篇.GD库可以折腾很多用法出来,当然得跟画图相关,除了前面的验证码.水印外,还可以进行图片的缩放,裁剪.旋转等操作,这在很多应用中可以见到. 1. 加水印 前面已经知道,我们可以使用imagechar或者imagestring等将字符或字符串(甚至中文字符)绘制到图像上,以达到水印的目的,还有个更好的方式,不仅能加字符水印,还能加图片水印:imagecopy. 原型:bool imagecopy (resource $dst_im , resource $src_im , int $ds

PHP->利用GD库新建图像

1.确认php中GD库是否开启 在PHP配置文件php.ini中查找extension=php_gd2.dll,去掉前边的(分号) ';' 即可,一般php是默认开启的 2.绘画步骤 创建一个画布(画板).画笔.色彩. *开始绘画(重点,难点) 输出图像(复制型) 销毁图像资源(释放内存) 3.示例 为了方便演示,先了解后两步 输出图像: 1 header("Content-Type: image/jpeg");//设置响应头信息为一个jpeg的图片 2 imagejpeg($im);

php中GD库的简单使用

在php中需要图像处理的地方GD库会发挥重要的作用,php可以创建并处理包括GIF,PNG,JPEG,WBMP以及XPM在内的多种图像格式,简单的举几个例子: 1.用GD库会创建一块空白图片,然后绘制一个简单的线条 1 $img=imagecreatetruecolor(100, 100); //创建空白图片 2 $red=imagecolorallocate($img, 0xFF, 0x00, 0x00); //创建画笔 3 imageline($img,0,0,100,100,$red);

php关于gd库之1

GD库,是php处理图形的扩展库. php中处理图形和我们平常画画步骤类似: 1.创建画布------>准备画画的地方: 2.设置画笔------>选择画画的笔的颜色: 3.开始画画. 按每个步骤分开来说,创建画布,就是设置一块可以用来处理图形的区域,后面画的图形要确保在这个区域中,如果超出了设置的画布的区域,那画的东西就看不到了. 创建画布使用imagecreatetruecolor()来进行,它的具体格式如下: //接收的参数是画布的宽和高,以像素pix表示,返回的是一个图像标识符reso

PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现

PHP 使用GD库合成带二维码和圆形头像的海报步骤以及源码实现 之前记录过一篇文章,不过那只是简单将二维码合成到海报中去,这次还要合成头像,而且是圆形.所需要素材就不一一列举,直接代码吧 1.先获取用户头像 有的用户是自定义头像(自定义头像是其他站点),有的用户是小程序头像 1 if (!$user['logo_status'] && $user['logo']) { 2 $app_domain = config('app_url');//因为自己上传的头像都放在了小程序的后台上 3 $u