当前位置:首页 > 服务器 > 正文

服务器gd库(GDAL库)

今天给各位分享服务器gd库的知识,其中也会对GDAL库进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

北大青鸟java培训:PHP中使用GD库创建圆形饼图?

在php中,有一些简单的图像函数是可以直接使用的,但大多数要处理的图像,都需要在编译PHP时加上GD库。

除了安装GD库之外,在PHP中还可能需要其他的库,重庆电脑培训认为这可以根据需要支持哪些图像格式而定。

不同的GD版本支持的图像格式不完全一样,最新的GD库版本支持GIF、JPEG、PNG、WBMP、XBM等格式的图像文件,此外还支持一些如FreeType、Type1等字体库。

通过GD库中的函数,可以完成各种点、线、几何图形、文本及颜色的操作处理,也可以创建或读取多种格式的图像文件。

在PHP中,通过GD库处理图像的操作都是先在内存中处理,操作完成以后再以文件流的方式输出到浏览器或保存在服务器的磁盘中。

创建一个图像应该完成如下所示4个基本步骤。

①创建画布:所有的绘图设计都需要在一个背景图片上完成,而画布实际上就是在内存中开辟的一块临时区域,用于存储图像的信息。

以后的图像操作都将基于这个背景画布,该画布的管理就类似于我们在画画时使用的画布。

②绘制图像:画布创建完成以后,就可以通过这个画布资源,使用各种画像函数设置图像的颜色、填充画布、画点、线段、各种几何图形,以及向图像中添加文本等。

③输出图像:完成整个图像的绘制以后,需要将图像以某种格式保存到服务器指定的文件中,或将图像直接输出到浏览器上显示给客户。

但在图像输出之前,一定要使用header()函数发送Content-type通知浏览器,这次发送的是图片不是文本。

④释放资源:图像被输出以后,画布中的内容也不再有用。

出于节约系统资源的考虑,需要及时清楚画布占用的所有内存资源。

我们先来了解一下一个非常简单的创建图像脚本。

在下面的脚本文件image.php中,按前面介绍的绘制图像的四个步骤,使用GD库动态输出一个扇形统计图。

PHP中GD库是做什么用的

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

在网站上GD库通常用来生成缩略图,或者用来对图片加水印,或者用来生成汉字验证码,或者对网站数据生成报表等。在PHP处理图像,可使用GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从 GD 库 1.6 版起所有的 GIF 支持都移除了,但是又在 GD 库 2.0.28 版起又加了回来。如果使用二者之间版本的 GD 库时 GIF 相关函数不可用。

安装与配置

编辑

如果是 win 的服务器,比较简单,步骤如下:

1. 用dos命令(也可以手动操作,拷贝dlls文件夹里所有dll文件到system32目录下) copy c:\php\dlls\*.dll c:\windows\system32\

2. 打开php.ini

设置extension_dir = "c:/php/extensions/";

3. 在“;extension=php_gd2.dll”一行,把extension前面的分号去掉,如果没有php_gd2.dll,php_gd.dll也一样,保证确实存在这一文件c:/php/extensions/php_gd2.dll.

linux服务器上配置方法:

yum install php-gd* #适用于32bit操作系统安装命令;

yum install php-gd.x86_64 #适用于64bit操作系统安装命令;

怎样开启php的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]);

GD库的安装与配置

如果是 win 的服务器,比较简单,步骤如下:

1. 用dos命令(也可以手动操作,拷贝dlls文件夹里所有dll文件到system32目录下) copy c:\php\dlls\*.dll c:\windows\system32\

2. 打开php.ini

设置extension_dir = c:/php/extensions/;

3. 在“;extension=php_gd2.dll”一行,把extension前面的分号去掉,如果没有php_gd2.dll,php_gd.dll也一样,保证确实存在这一文件c:/php/extensions/php_gd2.dll.

linux服务器上配置方法:

yum install php-gd* #适用于32bit操作系统安装命令;

yum install php-gd.x86_64 #适用于64bit操作系统安装命令;

服务器上GD库打开了 但是还是无法显示图形 - 技术问答

应该是你的图片程序用的”字体文件“在服务器上没有,或路径不对。当然或许还有其它原因,不过由于没有源代码,具体原因还待进一步查证。

服务器gd库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于GDAL库、服务器gd库的信息别忘了在本站进行查找喔。

取消
扫码支持 支付码