让你的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 编程请选择正确的文本编辑软件
Dec 21 PHP
什么是MVC,好东西啊
May 03 PHP
PHP 得到根目录的 __FILE__ 常量
Jul 23 PHP
PHP 翻页 实例代码
Aug 07 PHP
PHP 开源AJAX框架14种
Aug 24 PHP
php htmlspecialchars加强版
Feb 16 PHP
PHP中用hash实现的数组
Jul 17 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
php实现的任意进制互转类分享
Jul 07 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 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
对Session和Cookie的区分与解释
2007/03/16 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
2014/06/26 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
php数字每三位加逗号的功能函数
2015/10/22 PHP
php获取图片信息的方法详解
2015/12/10 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
fix-ie5.js扩展在IE5下不能使用的几个方法
2007/08/20 Javascript
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
从零学习node.js之利用express搭建简易论坛(七)
2017/02/25 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
Angular中的interceptors拦截器
2017/06/25 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
使用Python写个小监控
2016/01/27 Python
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
python爬虫豆瓣网的模拟登录实现
2019/08/21 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
高三地理教学反思
2014/01/11 职场文书
政府绩效管理实施方案
2014/05/04 职场文书
学校中秋节活动总结
2015/03/23 职场文书
首席执行官观后感
2015/06/03 职场文书
学习党史心得体会2016
2016/01/23 职场文书
《将心比心》教学反思
2016/02/23 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Python基于百度AI实现抓取表情包
2021/06/27 Python