让你的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若干单维数组遍历方法的比较
Sep 20 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
Jan 10 PHP
PHP中的函数-- foreach()的用法详解
Jun 24 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
非常好用的Zend Framework分页类
Jun 25 PHP
php对象在内存中的存在形式分析
Feb 03 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
Sep 22 PHP
浅谈PHP中的错误处理和异常处理
Feb 04 PHP
PHP 无限级分类
May 04 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
laravel实现上传图片的两种方式小结
Oct 12 PHP
laravel实现一个上传图片的接口,并建立软链接,访问图片的方法
Oct 12 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
PHP文件缓存内容保存格式实例分析
2014/08/20 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
php 中序列化和json使用介绍
2013/07/08 Javascript
浅析webapp框架AngularUI的demo
2014/12/21 Javascript
JavaScript中length属性的使用方法
2015/06/05 Javascript
百度地图api如何使用
2015/08/03 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
JavaScript中concat复制数组方法浅析
2019/01/20 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
vue实现折线图 可按时间查询
2020/08/21 Javascript
Python多线程下载文件的方法
2015/07/10 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
python搜索包的路径的实现方法
2019/07/19 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
自荐书格式
2013/12/01 职场文书
座谈会主持词
2014/03/20 职场文书
基层党支部公开承诺书
2014/05/29 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
python blinker 信号库
2022/05/04 Python