让你的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网上调查系统
Oct 09 PHP
目录,文件操作详谈―PHP
Nov 25 PHP
php面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
利用PHP实现短域名互转
Jul 05 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
PHP多进程编程实例
Oct 15 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
php实现网站留言板功能
Nov 04 PHP
ThinkPHP路由机制简介
Mar 23 PHP
thinkphp修改配置进入默认首页的方法
Feb 07 PHP
PHP 的Opcache加速的使用方法
Dec 29 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
用户的详细注册和判断
2006/10/09 PHP
PHP链接MySQL的常用扩展函数
2014/10/23 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
数组Array的一些方法(总结)
2017/02/17 Javascript
Vue监听数据对象变化源码
2017/03/09 Javascript
vue2 中如何实现动态表单增删改查实例
2017/06/09 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
Vue精简版风格概述
2018/01/30 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
Pycharm快捷键配置详细整理
2020/10/13 Python
CSS3 实现雷达扫描图的示例代码
2020/09/21 HTML / CSS
CAT鞋加拿大官网:CAT Footwear加拿大
2020/08/05 全球购物
学校司机岗位职责
2013/11/14 职场文书
企业项目策划书
2014/01/11 职场文书
高中军训感想800字
2014/02/23 职场文书
体育教师求职信
2014/06/30 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
质量主管工作职责
2014/09/26 职场文书
违章停车检讨书
2014/10/21 职场文书
答谢词范文
2015/01/05 职场文书
2015初中团委工作总结
2015/07/28 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
导游词之河北野三坡
2019/12/11 职场文书
Win11 引入 Windows 365 云操作系统,适应疫情期间混合办公模式:启动时直接登录、模
2022/04/06 数码科技
动态规划之使用备忘录来改进Javascript函数
2022/04/07 Javascript