什么是gd库?
    gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
 
    在php中使用gd库来对图像进行操作,GD为是一个动态的开放的创建图像的源代码公开的函数库。可以从官方网站www.boutell.com/gd处下载,目前GD库支持gif,png,jpeg,wbmp,xbm等多种图像格式。GD库通常用于对图像的处理。
 
在Windows环境下
  1. 打开php.ini文件

  2. 用查找工具找到extension=php_gd2.dll,把extension=php_gd2.dll 前面的【;】,介样子就可以开启GD库
  3. 检验方法
    1.   

      //测试能够用GD库
      if(extension_loaded('gd')){
      echo '你可以使用GD库';
      foreach(gd_info() as $cate=>$value)
      echo '$cate:$value<br/>';
      }else{
      echo '你没有装gd扩展';
      }
 
 
PHP秘籍 2010-03-10

PHP中实现大图自动缩成小图(GD库的安装)  
     我觉得网络编程与普通编程最大的区别就是,网络编程除了具备普通编程的特性外,还要花很大精力考虑速度的问题。  
     网站上需要很多图片,现在有很多给用户存放照片,图片的“像册”程序,可以让用户自己上传图片,然后自动缩成小图,可以让你在一个页面看到很多小图,然后点击小图看大图。  
     注意:在网页中指定长宽显示图片,只能让图片以小尺寸显示,但是大小(容量)不变(可以看看属性),速度自然很慢。真正的缩图是把大图的大小(容量)变小,就是重新生成一个小尺寸的图片文件。我的一个程序有此功能,正在测试:www1.yn.cninfo.net/love  
     另外,装上GD库,还有很多功能,可以用程序画图,做些特别的计数器之类,还可以支持FREETYPE字体等等,里面函数很多,功能很强大。  
     先简单说说GIF,JPG,PNG,BMP图的区别:他们都是图形压缩格式。GIF格式单图最多能显示256种颜色,可以保存多图,适合做小动画,容量较大。 JPEG格式,支持24位(16 百万)种颜色,适合于静态图,容量较小。PNG格式,包含GIF,JPEG的所有特点,支持48位颜色,但是容量较大,而且应用不广泛。 BMP格式,颜色少,非常老的压缩格式,对于网络来说太大了。  
     在PHP中实现大图自动缩成小图其实很简单,装上GD库,用一个小函数就可以了,但是安装GD库很麻烦。在1.6.2 版以前的 GD library 有支持 GIF 格式的功能,但因为 GIF 格式使用的 LZW 演算法牵涉到 Unisys 的专利权,因此在 GD library 1.6.2 版之后不支持 GIF 的格式。  
     PHP 在 3.0.13 版之后,终于支持了 PNG 的图型格式,使用 PNG 就不怕会有版权的问题了,而且在 PHP 这个版本以后,安装编译时会检查 GD library 支持的是旧的 GIF 格式还是新的 PNG 格式来决定是否使用 GIF 或 PNG 的专用函数。

LINUX装GD库就比较麻烦了,先简单说说关于APACHE和PHP的安装:当我们在Apache环境下安装PHP的时候,你有三种安装模式可供选择:静态模块、动态模块(DSO)和CGI。  
常用的是静态模块,就是APACHE和PHP在一起编译,这样PHP的执行效率高一些,但是PHP要升级或要装GD库之类的附加库时就要把两个都重新编译,很麻烦。动态模块就好办多了,单独重新编译PHP就行了,具体安装查看PHP中的INSTALL文件。我费了半天劲安装成功了,介绍一点静态模块加GD库+JPEG+PNG的心得:  
2. 环境: LINUX6.1+PHP4.0.6+GD1.8.4+jpeg+png+zlib+APACHE_1.3.20+MYSQL  
1)下载所需的库:  
下载GD库:建议使用Version 1.8.4 (Stable)稳定版,我编译gd-2.0.1(BETA)时,没通过。  
http://www.boutell.com/gd/

下载zlib:  
http://www.info-zip.org/pub/infozip/zlib/

下载libpng:建议使用libpng-1.0.6-1-src.tar.gz

http://www.turbolinux.com.cn/pub/mirrors/sourceware/cygwin/contrib/libpng/

下载jpegsrc.v6b.tar.gz:  
http://www.turbolinux.com.cn/pub/mirrors/gnu/ghostscript/

以下步骤需要按顺序执行:  
2)我用的是LINUX6.1,内核是2.2.12。以ROOT进入,解压所有包,tar -zxvf filename 。然后编译:  
3)如果你的LINUX没有安装zlib,必须先安装zilb,进入zlib-1.1.3 执行:  
./configure  
make  
make install  
4)进入libpng-1.0.6,可以在LINUX,或DOS下安装,LINUX下需要拷贝他的makefile文件, 执行:  
cp scripts/makefile.linux makefile  
make  
make install  
5)进入jpeg-6b 执行:  
./configure  
make  
make install  
6a)进入gd-1.8.4  
修改Makefile  
检查GD库编译时是否加入加入JPEG支持,得修改Makefile文件。  
修改Makefile文件,使得:  
CFLAGS=-O -DHAVE_LIBPNG -DHAVE_LIBJPEG  
LIBS=-lgd -lpng -lz -lm -ljpeg

或者,如果你FREETYPE,XPM,TTF等库都安装了,(安装方法大同小异,自己去找库吧),就改下面:  
#CFLAGS=-O -DHAVE_LIBXPM -DHAVE_LIBPNG -DHAVE_LIBJPEG  
#-DHAVE_LIBFREETYPE -DHAVE_LIBTTF

#LIBS=-lgd -lpng -lz -ljpeg -lfreetype -lm -lttf  
去掉#

此后,编译并安装:  
make  
make install

(如果需要MYSQL,而你没装,就先装MYSQL,解压,执行: ./configure ; make ; make install  
./configure --prefix=/home/mysql ,默认安装路径/usr/local/share/mysql 。)

7)重新编译PHP,我用的是PHP-4.0.6,最好先看看安装文件,more INSTALL,然后执行:  
7.1)解压进入apache_1.3.20,需要先考些文件,执行:  
./configure --prefix=/home/apache  
--activate-module=src/modules/php4/libphp4.a  
7.2)解压进入php-4.0.6,编译安装:  
./configure --with-mysql --with-apache=../apache_1.3.20  
--with-gd=../gd-1.8.4 --with-jpeg-dir=../jpeg-6b --with-png-dir=../libpng-1.0.6  
--with-zlib --enable-track-var  
(默认安装路径:/usr/local/lib/php)

8)如果你的PHP是和APACHE一起编译的,静态模块,就要重新编译APACHE,我用的是apache_1.3.20  
先停掉APACHE:./home/apache/bin/apachectl stop  
进入apache_1.3.20,需要改文件src/Configuration:  
加入: AddModule modules/php4/libphp4.a  
〔 这是APACHE_1.3.x的安装,如果你用的是APACHE_1.2.x,就加入Module php4_module mod_php4.o  
然后拷贝libphp4.module到src,修改相应语句为:EXTRA_LIBS=-L. -lphp4 -lgdbm -ldb -L/usr/local/mysql/lib -lmysqlclient  
如果你采用动态模块安装,如果是初次安装,修改语句不同,具体查看PHP的INSATLL文件。〕

然后执行:  
./configure --prefix=/home/apache (prefix=是指定存放路径。不带prefix,默认的是/usr/local/apache)  
(也可以直接执行./configure --prefix=/home/apache  
--activate-module=src/modules/php4/libphp4.a )  
make  
make install

9)进入 php-4.0.6 执行  
cp php.ini-dist /usr/local/lib/php.ini

10)启动APACHE: ./home/apache/bin/apachectl start

11)运行你的phpinfo()程序,默认APACHE的根目录是/usr/local/apache/htdocs/ 。如过跟上面WINDOWS中显示一样,那就恭喜你安装成功了,可以支持PHP+GD+JPEG+PNG了。不行的话,重装试试。

另外,在gd-1.8.3中有个GIF的补丁,我试过没有成功,看来要版本很低的LINUX才行,如果你成功了,或者在LINUX6.1以上版本中有什么其他办法实现PHP+GD+GIF,麻烦告诉我(E_mail:UBs@ynmail.com)  
如果要用GIF图形,操作如下,把上面步骤:6a换成6b  
使用gd-1.8.3,加上GIF补丁编译,使GD库包含GIF库:  
6b)下载:http://www.boutell.com/gd/http/gd-1.8.3.tar.gz

PHP中GD库是做什么用的? PHP GD库介绍11111111的更多相关文章

  1. 答:SQLServer DBA 三十问之二:系统DB有哪些,都有什么作用,需不需要做备份,为什么;损坏了如何做还原(主要是master库)

    2. 系统DB有哪些,都有什么作用,需不需要做备份,为什么:损坏了如何做还原(主要是master库): master:它包含一个系统表集合,是整个实例的中央存储库,维护登录账户,其他数据库,文件分布, ...

  2. 向modesim中添加alter库 (或者在每次仿真时将库文件加入仿真文件夹一起编译)

    在ModelSim中进行仿真需要加入Quartus提供的仿真库,原因是下面三个方面:    ·Quartus不支持Testbench:    ·调用了megafunction或者lpm库之类的Alte ...

  3. 测试数据库DG搭建为正式库以后做准备

    Data guard 部署 1.系统准备(备库只需建立数据库软件) 两台操作系统 oracle linux 7 Node1 172.16.70.191 Node2 172.16.70.192 Orac ...

  4. 用PYTHON首选的GUI库WXPYTHON做程序界面

    大家好,我是A8U神经网络,今天又要跟大家分享一下wxWidgets开发神经网络程序界面的一些经验,希望对开发有兴趣的朋友有所帮助.跨平台的GUI工具库以GTK +,Qt和wxWidgets闻名. G ...

  5. 动态库与静态库的学习 博主写的很好 静态库 编译的时候 需要加上 static 动态库编译ok运行不成功就按照文章中的方法修改

    来源连接   http://www.cnblogs.com/skynet/p/3372855.html C++静态库与动态库 这次分享的宗旨是--让大家学会创建与使用静态库.动态库,知道静态库与动态库 ...

  6. 解决jQuery中美元符号($)命名与别的js脚本库引用冲突方法

    在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg') 的写法.然而,当我们引入多个js库后,在另外一个js库 ...

  7. 在VS工程中,添加c/c++工程中外部头文件及库

    在VS工程中,添加c/c++工程中外部头文件及库的基本步骤: 1.添加工程的头文件目录:工程---属性---配置属性---c/c++---常规---附加包含目录:加上头文件存放目录. 2.添加文件引用 ...

  8. 解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题

    解决QZ-SDK静态库libRPToolLib.a中avfoundation.o文件和kxMovie依赖的ffmpeg静态库libavdevice.a函数重复定义的问题 在原来项目中导入全志v3相机的 ...

  9. 解决:"不再sudoers文件中,此事将不做被报告”的问题

    使用sudo出现问题:不再sudoers文件中,此事将不做被报告 系统:win8.1 +cents 7 问题:在虚拟机中,默认不是root账号,在使用sudo命令时候收到下面警告: sudo命令含义: ...

随机推荐

  1. Android笔记之动态地添加View

    使用ViewGroup.addView(View)可动态添加部件,ViewGroup.removeAllViews()用于移除所有部件 示例如下 MainActivity.java package c ...

  2. Linux PPTP拨号

    试验环境:Linux marsboard 3.4.90 #9 SMP PREEMPT Thu Mar 3 18:28:43 CST 2016 armv7l armv7l armv7l GNU/Linu ...

  3. 使用valgrind进行内存泄漏和非法内存操作检测

    valgrind是一个强大的工具,最常用的功能是用它来检测内存泄漏和非法内存的使用.要想让valgrind报告的更加细致,请使用-g进行编译. 基本命令如下: $ valgrind --tool=me ...

  4. Linux CentOS系统上安装Eclipse

    Linux CentOS系统上安装Eclipse 1. 下载Eclipse软件 下载网址:http://www.eclipse.org/downloads/packages/release/Juno/ ...

  5. Strom 消息处理机制 中英对照翻译 (Storm如何保证消息被完全处理)

    官方链接: http://storm.incubator.apache.org/documentation/Guaranteeing-message-processing.html What does ...

  6. Android SDK Manager更新问题

    1.如果是windows7,那么"开始-->所有程序-->Android SDK Tools-->右键SDK Manager-->以管理员身份运行(A)"2 ...

  7. 1076 Forwards on Weibo (30)(30 分)

    Weibo is known as the Chinese version of Twitter. One user on Weibo may have many followers, and may ...

  8. 【LeetCode】454 4Sum II

    题目: Given four lists A, B, C, D of integer values, compute how many tuples (i, j, k, l) there are su ...

  9. ASM认证与口令文件

    ASM认证 ORACLE ASM 实例没有数据字典,所以连接ASM 实例只能通过如下三种系统权限来进行连接: SYSASM,SYSDBA,SYSOPER. 可以通过如下三种模式来连接ASM 实例:1. ...

  10. Redo Gap 处理与优化

    理论背景 当redo data 传送发生中断时就会产生redo gap.当redo 传送恢复正常以后,redo transport service 会自动检测redo gap并发送缺失的redo 到d ...