让你的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 数组排序方法总结 推荐收藏
Jun 30 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
Jun 05 PHP
注意:php5.4删除了session_unregister函数
Aug 05 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
PHP使用pcntl_fork实现多进程下载图片的方法
Dec 16 PHP
PHP微信红包API接口
Dec 05 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP7.1实现的AES与RSA加密操作示例
Jun 15 PHP
PHP一个简单的无需刷新爬虫
Jan 05 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中使用excel的简单介绍
2013/08/02 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
Smarty分页实现方法完整实例
2016/05/11 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
用 JSON 处理缓存
2007/04/27 Javascript
客户端 使用XML DOM加载json数据的方法
2010/09/28 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
js简单实现交换Li的值
2014/05/22 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
浅谈React深度编程之受控组件与非受控组件
2017/12/26 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
Python实现提取谷歌音乐搜索结果的方法
2015/07/10 Python
Django基于ORM操作数据库的方法详解
2018/03/27 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python Scrapy框架:通用爬虫之CrawlSpider用法简单示例
2020/04/11 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
外语系毕业生自荐信范文
2013/12/16 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
社区优秀志愿者先进事迹
2014/05/09 职场文书
迎新晚会策划方案
2014/06/13 职场文书
庆七一活动总结
2014/08/27 职场文书
运动会通讯稿100字
2015/07/20 职场文书
自信主题班会
2015/08/14 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
Nginx 过滤静态资源文件的访问日志的实现
2021/03/31 Servers
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
类和原型的设计模式之复制与委托差异
2022/07/07 Javascript