让你的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中实现汉字转区位码应用源码实例解析
Jun 14 PHP
30 个很棒的PHP开源CMS内容管理系统小结
Oct 14 PHP
解析php取整的几种方式
Jun 25 PHP
实用的PHP带公钥加密类分享(每次加密结果都不一样哦)
Aug 20 PHP
PHP动态柱状图实现方法
Mar 30 PHP
PHP中返回引用类型的方法
Apr 03 PHP
一个简单至极的PHP缓存类代码
Oct 23 PHP
php文件上传类的分享
Jul 06 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
Nov 17 PHP
PHP中OpenSSL加密问题整理
Dec 14 PHP
php中的依赖注入实例详解
Aug 14 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/08/07 PHP
php数组函数序列之array_values() 获取数组元素值的函数与方法
2011/10/30 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
php数组分页实现方法
2016/04/30 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
Javascript的一种模块模式
2008/03/22 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
第三篇Bootstrap网格基础
2016/06/21 Javascript
jQuery结合jQuery.cookie.js插件实现换肤功能示例
2017/10/14 jQuery
vue复合组件实现注册表单功能
2017/11/06 Javascript
JSON基本语法及与JavaScript的异同实例分析
2019/01/04 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
JavaScript 常见的继承方式汇总
2020/09/17 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
python获取图片颜色信息的方法
2015/03/18 Python
Python和Java进行DES加密和解密的实例
2018/01/09 Python
numpy判断数值类型、过滤出数值型数据的方法
2018/06/09 Python
Python GUI学习之登录系统界面篇
2019/08/21 Python
python实现从尾到头打印单链表操作示例
2020/02/22 Python
Django实现将一个字典传到前端显示出来
2020/04/03 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
HTML5拖拽的简单实例
2016/05/30 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
英国网上花店:Bunches
2016/11/29 全球购物
linux面试题参考答案(3)
2012/09/13 面试题
初二政治教学反思
2014/01/12 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
工作表扬信
2015/01/17 职场文书
初中信息技术教学计划
2015/01/22 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
基于go interface{}==nil 的几种坑及原理分析
2021/04/24 Golang
Centos7中MySQL数据库使用mysqldump进行每日自动备份的编写
2021/08/02 MySQL