让你的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+DBM的同学录程序(2)
Oct 09 PHP
PHP 木马攻击防御技巧
Jun 13 PHP
php自定义session示例分享
Apr 22 PHP
使用配置类定义Codeigniter全局变量
Jun 12 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
Thinkphp模板标签if和eq的区别和比较实例分析
Jul 01 PHP
PHP实现批量上传单个文件
Dec 29 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
php无限级分类实现方法分析
Oct 19 PHP
PHP获取input输入框中的值去数据库比较显示出来
Nov 16 PHP
php实现的中文分词类完整实例
Feb 06 PHP
PHP中递归的实现实例详解
Nov 14 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
PHP去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
php中define用法实例
2015/07/30 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
在javascript中关于节点内容加强
2013/04/11 Javascript
iframe子页面获取父页面元素的方法
2013/11/05 Javascript
js控制input输入字符解析
2013/12/27 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
webpack项目使用eslint建立代码规范实现
2019/05/16 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[00:34]TI7不朽珍藏III——地穴编织者不朽展示
2017/07/15 DOTA
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
跟老齐学Python之Python安装
2014/09/12 Python
Python及PyCharm下载与安装教程
2017/11/18 Python
python协程之动态添加任务的方法
2019/02/19 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
阿里巴巴美国:Alibaba美国
2019/11/24 全球购物
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
产品销售计划书
2014/05/04 职场文书
2014财务年度工作总结
2014/11/11 职场文书
同学聚会感言一句话
2015/07/30 职场文书
同学会演讲稿
2019/04/02 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
python垃圾回收机制原理分析
2022/04/13 Python