让你的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.ini 中文版
Oct 28 PHP
PHP 危险函数解释 分析
Apr 22 PHP
php 向访客和爬虫显示不同的内容
Nov 09 PHP
ThinkPHP 防止表单重复提交的方法
Aug 08 PHP
如何用php获取文件名后缀
Jun 09 PHP
PHP封装的一个支持HTML、JS、PHP重定向的多功能跳转函数
Jun 19 PHP
php利用事务处理转账问题
Apr 22 PHP
PHP版本升级到7.x后wordpress的一些修改及wordpress技巧
Dec 25 PHP
PHP+Ajax实现验证码的实时验证
Jul 20 PHP
Laravel 5.3 学习笔记之 错误&amp;日志
Aug 28 PHP
[原创]php实现 data url的图片生成与保存
Dec 04 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 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 在线翻译函数代码
2009/05/07 PHP
PHP下操作Linux消息队列完成进程间通信的方法
2010/07/24 PHP
Yii 2.0如何使用页面缓存方法示例
2017/05/23 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
php微信公众号开发之欢迎老朋友
2018/10/20 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
提交表单时执行func方法实现代码
2013/03/17 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
详解JavaScript中的属性和特性
2016/12/08 Javascript
详解jQuery中ajax.load()方法
2017/01/25 Javascript
jquery append与appendTo方法比较
2017/05/24 jQuery
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
Python+MongoDB自增键值的简单实现
2016/11/04 Python
Python3+django2.0+apache2+ubuntu14部署网站上线的方法
2018/07/07 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
python读取文件名并改名字的实例
2019/01/07 Python
详解Python静态网页爬取获取高清壁纸
2019/04/23 Python
Django--权限Permissions的例子
2019/08/28 Python
Python 实现日志同时输出到屏幕和文件
2020/02/19 Python
PyTorch 中的傅里叶卷积实现示例
2020/12/11 Python
使用canvas压缩图片大小的方法示例
2019/08/02 HTML / CSS
面向对象概念面试题(.NET)
2016/11/04 面试题
演讲主持词
2014/03/18 职场文书
优质护理服务演讲稿
2014/05/07 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
团队会宣传标语
2014/10/09 职场文书
2014年社区工会工作总结
2014/12/18 职场文书
好好学习保证书
2015/02/26 职场文书
java解析XML详解
2021/07/09 Java/Android