让你的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 引用(&amp;)详解
Nov 20 PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 PHP
PHP实现下载断点续传的方法
Nov 12 PHP
PHP调试函数和日志记录函数分享
Jan 31 PHP
php通过array_merge()函数合并关联和非关联数组的方法
Mar 18 PHP
10款实用的PHP开源工具
Oct 23 PHP
WordPress中创建用户角色的相关PHP函数使用详解
Dec 25 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
php基于curl实现随机ip地址抓取内容的方法
Oct 11 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
Yaf框架封装的MySQL数据库操作示例
Mar 06 PHP
wordpress自定义标签云与随机获取标签的方法详解
Mar 22 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/04/24 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
PHP文件上传类实例详解
2016/04/08 PHP
php 如何获取文件的后缀名
2016/06/05 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
2016/07/15 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
PHP中file_put_contents追加和换行的实现方法
2017/04/01 PHP
jQuery UI的Dialog无法提交问题的解决方法
2011/01/11 Javascript
用Javascript评估用户输入密码的强度实现代码
2011/11/30 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
小程序实现左滑删除功能
2018/10/30 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
vue-router懒加载的3种方式汇总
2021/02/28 Vue.js
python二叉树遍历的实现方法
2013/11/21 Python
Python基于Socket实现的简单聊天程序示例
2017/08/05 Python
python基于递归解决背包问题详解
2019/07/03 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
基于Python的图像阈值化分割(迭代法)
2020/11/20 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
一款纯css3实现的圆形旋转分享按钮旋转角度可自己调整
2014/09/02 HTML / CSS
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
婴儿鞋,独特的婴儿服装和配件:Zutano
2018/11/03 全球购物
查找廉价航班和发现新目的地:Kiwi.com
2019/02/25 全球购物
护士自我鉴定
2013/10/23 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
音乐之声观后感
2015/06/04 职场文书
2019年大学生暑期社会实践调查报告模板
2019/11/07 职场文书
二年级作文之动物作文
2019/11/13 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL