让你的PHP同时支持GIF、png、JPEG


Posted in PHP onOctober 09, 2006

让你的PHP同时支持GIF、png、JPEG

在RedHat6.2按php的manual编译安装,发现只能处理GIF图像,不能处理JPEG图像。后来知道PHP处理图像,使用了GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从GD-1.6开始,GD库不再支持GIF,改为支持更好的,无版权争议的PNG。而我现在希望同时支持GIF,PNG和JPEG。

1、 Jpeg6b的安装
RedHat6.2中已经有了RPM包,我们也就不需要去费劲编译了。
  放入安装盘
  mount /mnt/cdrom
  cd /mnt/cdrom/RedHat/RPMS
  rpm -ivh libjpeg*

安装成功,用rpm -ql libjpeg-6b-10 查看,发现libjpeg.so.62.0.0被拷到/usr/lib目录下。记住此目录,等会儿配php时要用。

2、 GD-1.8.3的安装
获取GD源码的地址为:
http://www.boutell.com/gd/
你当然可以自己编译,但它不支持jpeg,要打补丁。
获取补丁源码的地址为:
http://www.webofsin.com/gd-1.8.3-gif.patch
接下来………………麻烦死了……劝你还是不要自己编译了!!

有现成的东西为何不用呢?已经有人打好补丁编译好了,做成RPM。
可以在:
http://rpms.arvin.dk/rh7-backports/gd/
http://rpms.arvin.dk/gd-with_gif/
得到。世上竟然有这么好的人?;-<
真令人感动!!!

下载了几个gd-with_gif*.rpm后直接 rpm -ivh gd-with_gif* 安装。
用 rpm -ql gd-with_gif-1.8.3-7 查看
发现 libgd.so.1.8.3 放到了 /usr/gd-with_gif/lib 下
记住此目录,配php时也要用。

3、 PHP的安装和配置
鉴于曾听说php4.0不支持jpeg(不知记错没),我建议还是用php的最新版。
下面的,大家应该熟悉得不能再熟悉了吧?
于是我把php的manual抄下来:
---------------------------------
1. gunzip apache_1.3.x.tar.gz
2. tar xvf apache_1.3.x.tar
3. gunzip php-x.x.x.tar.gz
4. tar xvf php-x.x.x.tar
5. cd apache_1.3.x
6. ./configure --prefix=/www
7. cd ../php-x.x.x
8. 这里是关键!!!
  ./configure --with-mysql --with-apache=../apache_1.3.x --enable-track-vars --with-jpeg-dir=/usr/lib --with-gd=/usr/gd-with_gif/lib
  当然你也可以加上你自己的选项,此不赘述。
9. make
10. make install
11. cd ../apache_1.3.x
12. for PHP 4: ./configure --activate-module=src/modules/php4/libphp4.a
13. make
14. make install

Instead of this step you may prefer to simply copy the httpd binary
overtop of your existing binary. Make sure you shut down your
server first though.

15. cd ../php-x.x.x
16. for PHP 4: cp php.ini-dist /usr/local/lib/php.ini

You can edit your .ini file to set PHP options. If
you prefer this file in another location, use
--with-config-file-path=/path in step 8.

17. Edit your httpd.conf or srm.conf file and add:
   For PHP 4:  AddType application/x-httpd-php .php

You can choose any extension you wish here. .php is simply the one
we suggest. You can even include .html .

18. Use your normal procedure for starting the Apache server. (You must
  stop and restart the server, not just cause the server to reload by
  use a HUP or USR1 signal.)
---------------------------------------

终于成功了,你可以启动apache用phpinfo()试一试,发现gd那里:
----------------------
    gd
GD Support enabled
GD Version 1.6.2 or higher
GIF Support enabled
PNG Support enabled
JPG Support enabled
WBMP Support enabled
----------------------

^_^哈哈哈哈哈哈哈哈哈^_^
你现在可以用到所有的php图形函数了:
ImageCreateFromGIF() — Create a new image from file or URL
ImageCreateFromJPEG() — Create a new image from file or URL
ImageCreateFromPNG() — Create a new image from file or URL
……
绝对没问题!!!!

PHP 相关文章推荐
php简单开启gzip压缩方法(zlib.output_compression)
Apr 13 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
19个Android常用工具类汇总
Dec 30 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
PHP查找与搜索数组元素方法总结
Jun 12 PHP
Zend Framework教程之Zend_Config_Ini用法分析
Mar 23 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP设计模式之单例模式原理与实现方法分析
Apr 25 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
php xhprof使用实例详解
Apr 15 PHP
定制404错误页面,并发信给管理员的程序
Oct 09 #PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 #PHP
使用字符串函数输出整数化的PHP版本号
Oct 09 #PHP
树型结构列出指定目录里所有文件的PHP类
Oct 09 #PHP
搜索和替换文件或目录的一个好类--很实用
Oct 09 #PHP
非常好的php目录导航文件代码
Oct 09 #PHP
PHP4.04简明安装
Oct 09 #PHP
You might like
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
杏林同学录(二)
2006/10/09 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
2017/03/04 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
jquery实现效果比较好的table选中行颜色
2014/03/25 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
详解JavaScript ES6中的Generator
2015/07/28 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
2016/06/07 Javascript
BootStrap实现树形目录组件代码详解
2016/06/21 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
Vue响应式原理Observer、Dep、Watcher理解
2019/06/06 Javascript
Nest.js散列与加密实例详解
2021/02/24 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
对Python中plt的画图函数详解
2018/11/07 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python实现ip地址的包含关系判断
2020/02/07 Python
python pptx复制指定页的ppt教程
2020/02/14 Python
7款设计巧妙的css3飘带状3D立体效果的导航菜单和表单窗口
2013/02/04 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
空字符串(“”)和null的区别
2012/11/13 面试题
工作的心得体会
2013/12/31 职场文书
群众路线剖析材料
2014/02/02 职场文书
小学端午节活动总结
2015/02/11 职场文书
python的变量和简单数字类型详解
2021/09/15 Python
Golang 遍历二叉树
2022/04/19 Golang