如何在PHP中开启GD库支持详解

 我来答
百度网友52cbbd39
推荐于2016-09-22 · 知道合伙人互联网行家
百度网友52cbbd39
知道合伙人互联网行家
采纳数:98 获赞数:736
毕业于天津渤海技术学院网络专业,荣获H3CNE网络工程师、天津市网络竟赛二等奖。现任科技公司技术营销总监

向TA提问 私信TA
展开全部

GD库是干什么用的呢!它是php处理图形的扩展库,GD库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。

GD库在php中默认是没有开启的,如果想让它支持图片处理功能,那么就要手动开启GD库。

开发工具为wampserer,步骤如下:


  1. 找到php.ini文件,有两种方法:


  2. 方法一:wampserver安装目录下找到路径wamp\bin\mysql\mysql5.5.24\php.ini(我安装的根目录是D盘)


  3. 方法二:启动wampserver,单击任务栏wamp图标,选中PHP,看到php.ini,点击进入php.ini文件


  4. 打开php.ini文件


  5. 用查找工具找到extension=php_gd2.dll,把extension=php_gd2.dll 前面的【;】,介样子就可以了


  6. 测试能否用GD库,代码如下:


  7. 可以使用GD库运行效果图

du小悟
推荐于2016-10-21 · TA获得超过1.4万个赞
知道大有可为答主
回答量:4397
采纳率:88%
帮助的人:2583万
展开全部
开启GD库是php中一个重要的参数,常用来处理图像,像图片的任何处理都需要GD库的支持,下面我来介绍各种系统中GD库的开启方法与命令,大家可参考。

Windows下开启PHP的GD库支持
找到php.ini,打开内容,找到:
;extension=php_gd2.dll
把最前面的分号“;”去掉,再保存即可,如果本来就没有分号,那就是已经开启了。
Linux下开启PHP的GD库支持
#开启GD库支持有以下几种方法
##检测GD库是否安装命令
php5 -m | grep -i gd
或者
php -i | grep -i --color gd
##如未安装GD库,则为服务器安装,方法如下
### 如果是源码安装,则加入参数
--with-gd
### 如果是debian系的linux系统,用apt-get安装,如下
apt-get install php5-gd
### 如果是CentOS系的系统,用yum安装,如下
yum install php-gd
### 如果是suse系的linux系统,用yast安装,如下
yast -i php5_gd
### 如果嫌这个世界不够蛋疼呢,可以在原先编译PHP不支持GD的情况下附加
先下zlib源码,libpng源码,gd源码
解压后到源码目录
zlib目录
./configure --prefix=/usr/local/zlib
make ; make install
make clean
libpng目录
cp scripts/makefile.linux ./makefile
./configure --prefix=/usr/local/libpng
make ; make install
make clean
gd目录
./configure --prefix=/usr/local/libgd --with-png=/usr/local/libpng
make ; make install
make clean
最后在php.ini中,搜到[gd]后,在下面加一行
extension=/usr/local/libgdgd.so
然后重启php服务,如果不行,试试reboot
好了,不过最后提醒一下,要知道这个世界很多意外的,源码安装,只添加gd库这一个情况下,PHP版本和库的版本各异
,所以:
- 不保证这么付出了这么多后有回报
- 不保证能够成功加载gd.so
- 不保证不怀孕
所以如果是源码安装,最好还是在编译PHP的时候加参数--with-gd

GD库函数
GetImageSize
作用:取得图片的大小[即长与宽] 用法:array GetImageSize(string filename, array [imageinfo]);
ImageArc
作用:画弧线 用法:int ImageArc(int im, int cx, int cy, int w, int h, int s, int e, int col);
ImageChar
作用:写出横向字符 用法:int ImageChar(int im, int font, int x, int y, string c, int col);
ImageCharUp
作用:写出竖式字符 用法:int ImageCharup(int im, int font, int x, int y, string c, int col);
ImageColorAllocate
作用:匹配颜色 用法:int ImageColorAllocate(int im, int red, int green, int blue);

ImageColorTransparent
作用:指定透明背景色 用法:int ImageColorTransparent(int im, int [col]);

ImageCopyResized
作用:复制新图并调整大小 用法:int ImageCopyResized(int dst_im, int src_im, int dstX, int dstY, int srcX,
int srcY, int dstW, int dstH, int srcW, int srcH);

ImageCreate
作用:建立新图 用法:int ImageCreate(int x_size, int y_size);

ImageDashedLine
作用:绘虚线 用法:int ImageDashedLine(int im, int x1, int y1, int x2, int y2, int col);
ImageDestroy 作用:结束图形 用法解释:int ImageDestroy(int im);

ImageFill
作用:图形着色 用法:int ImageFill(int im, int x, int y, int col);
ImageFilledPolygon作用:多边形区域着色 用法:int ImageFilledPolygon(int im, array points, int num_points,
int col);

ImageFilledRectangle作用:矩形区域着色 用法:int ImageFilledRectangle(int im, int x1, int y1, int x2, int
y2, int col);

ImageFillToBorder作用:指定颜色区域内着色 用法:int ImageFillToBorder(int im, int x, int y, int border,
int col);

ImageFontHeight
作用:取得字型的高度 用法:int ImageFontHeight(int font);

ImageFontWidth作用:取得字型的宽度 用法:int ImageFontWidth(int font);

ImageInterlace作用:使用交错式显示与否 用法:int ImageInterlace(int im, int [interlace]);

ImageLine作用:绘实线 用法:int ImageLine(int im, int x1, int y1, int x2, int y2, int col);

ImageLoadFont作用:载入点阵字型 用法:int ImageLoadFont(string file);

ImagePolygon作用:绘多边形 用法:int ImagePolygon(int im, array points, int num_points, int col);

ImageRectangle作用:绘矩形 用法:int ImageRectangle(int im, int x1, int y1, int x2, int y2, int col);

ImageSetPixel作用:绘点 用法:int ImageSetPixel(int im, int x, int y, int col); ImageString 作用:绘横式
字符串 用法:int ImageString(int im, int font, int x, int y, string s, int col);

ImageStringUp作用:绘直式字符串 用法:int ImageStringUp(int im, int font, int x, int y, string s, int
col);

ImageSX
作用:取得图片的宽度 用法:int ImageSX(int im);

ImageSY
作用:取得图片的高度 用法:int ImageSY(int im);

ImageTTFBBox
作用:计算 TTF 文字所占区域 用法:array ImageTTFBBox(int size, int angle, string fontfile, string text);

ImageTTFText作用:写 TTF 文字到图中 用法:array ImageTTFText(int im, int size, int angle, int x, int y,
int col, string fontfile, string text); ImageColorAt 作用:取得图中指定点颜色的索引值 用法:int
ImageColorAt(int im, int x, int y);

ImageColorClosest
作用:计算色表中与指定颜色最接近者 用法:int ImageColorClosest(int im, int red, int green, int blue);

ImageColorExact
作用:计算色表上指定颜色索引值 用法:int ImageColorExact(int im, int red, int green, int blue);

ImageColorResolve
作用:计算色表上指定或最接近颜色的索引值 用法:int ImageColorResolve(int im, int red, int green, int
blue);
ImageColorSet
作用:设定色表上指定索引的颜色 用法:boolean ImageColorSet(int im, int index, int red, int green, int
blue); ImageColorsForIndex 作用:取得色表上指定索引的颜色 用法:array ImageColorsForIndex(int im, int
index);

ImageColorsTotal
作用:计算图的颜色数 用法:int ImageColorsTotal(int im); ImagePSLoadFont 作用:载入 PostScript 字型 用法
:int ImagePSLoadFont(string filename);

ImagePSFreeFont
作用:卸下 PostScript 字型 用法:void ImagePSFreeFont(int fontindex);

ImagePSEncodeFont
作用:PostScript 字型转成向量字 用法:int ImagePSEncodeFont(string encodingfile);

ImagePSText作用:写 PostScript 文字到图中 用法:array ImagePSText(int image, string text, int font, int
size, int foreground, int background, int x, int y, int space, int tightness, float angle, int
antialias_steps);

ImagePSBBox作用:计算 PostScript 文字所占区域 用法: array ImagePSBBox(string text, int font, int size,
int space, int width, float angle);

ImageCreateFromPNG作用:取出 PNG 图型 用法:int ImageCreateFromPng(string filename);

ImagePNG作用:建立 PNG 图型 用法:int ImagePng(int im, string [filename]);

ImageCreateFromGIF作用:取出 GIF 图型 用法:int ImageCreateFromGif(string filename);

ImageGIF作用:建立 GIF 图型 用法:int ImageGif(int im, string [filename]);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
不语鹊
2018-11-13 · 超过21用户采纳过TA的回答
知道答主
回答量:68
采纳率:33%
帮助的人:28万
展开全部
记得PHP默认没有开启GD库的支持,需要自行开启。于是就打开PHP安装目录/php.ini配置文件,找到如下内容:
;extension=php_gd2.dll

按照网上搜索得来的方法,去掉前面表示注释的符号";",然后重新启动Apache,结果发现还是不行,通过phpinfo()函数仍然无法看到任何与GD库相关的信息。看到网上很多关于「PHP开启GD库」的文章,都是直接说一句「去掉xxx前面的分号」,就没有下文了。事实证明,仅仅这么做明显是不行的,至少官方zip版本的php这么配置是不行的。
于是就只好自己检查php.ini的配置内容,最后发现其中有如下一行:
;extension_dir = "ext" //这里是windows的
linux的好像是 ;extension_dir = "./"
很明显,extension_dir指令被注释掉了,导致php连扩展库的ext都找不到,自然不可能找到扩展库中的php_gd2.dll了,gd库支持自然也没有开启。
于是,照猫画虎地去掉extension_dir指令前面的注释符号";",再次重启服务器,结果……还是不行。这不科学啊,难道extension_dir指令的值"ext"有问题?
PHP官方说,PHP5搜索扩展库的默认位置为C:\php5,于是尝试着按照官方的说法,仍然让extension_dir保持被注释掉的现状,在C盘下新建了一个php5文件夹,然后将php_gd2.dll复制进去,再次重新启动服务器,结果……还是不行。
此时,通过phpinfo()函数查看得知,在php.ini中没有开启extension_dir指令时,phpinfo()上的extension_dir显示的值居然是C:\php——难道官方的说明文档也出错了,或者说PHP 5.4这个版本已经作了变更、而官方文档还没有及时更新?其他的先不管那么多了,先试试C:\php行不行,于是将php5重命名为php,其他一切照旧,接着重新启动,然后通过phpinfo()函数查看到gd库已经开启了。——这至少证明,在PHP 5.4.19中,扩展库的默认搜索位置为C:\php。
当然,众所周知,extension_dir指令是支持绝对路径的,上面折腾半天,主要是为了搞明白extension_dir指令的作用与影响。最后还是将extension_dir前面的注释符号";"去掉,然后将其值改为ext的绝对路径,详细代码如下:
extension_dir = "F:/.4.19/ext" //windows写法。。。因情而定

综上所述,对于php官方版而言,要开启gd库支持,不仅要去掉extension=_gd2.dll前的注释符号,还要去掉extension_dir指令前的注释符号,并将其值作对应修改。当然,不仅仅是gd库,如果需要开启其他PHP扩展库,例如php_mysql、php_mysqli,方法也是类似的。”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式