让你的PHP同时支持GIF、png、JPEG

让你的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
……
绝对没问题!!!!

(0)

相关推荐

  • PHP之生成GIF动画的实现方法

    代码如下所示: 复制代码 代码如下: <?class GifMerge {     var $ver            = '1.1';     var $dly            = 50;     var $mod            = 'C_FILE';     var $first            = true;     var $use_loop            = false;     var $transparent        = false;    

  • php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串

    数据库脚本: -- -------------------------------------------------------- -- -- 表的结构 `highot_attachment` -- 复制代码 代码如下: CREATE TABLE IF NOT EXISTS `highot_attachment` ( `id` int(11) NOT NULL auto_increment, `phone_number_id` int(11) NOT NULL COMMENT 'phone_n

  • php生成gif动画的方法

    首先需要确认GD库是否正常,如果是合成图片,请确保把分解的图片放在frames的文件夹里面. GIFEncoder.class.php 类 <? Class GIFEncoder { var $GIF = "GIF89a"; /* GIF header 6 bytes */ var $VER = "GIFEncoder V2.06"; /* Encoder version */ var $BUF = Array ( ); var $LOP = 0; var $

  • PHP支持多种格式图片上传(支持jpg、png、gif)

    此处一次支持上传2个图片,上传后生成原图和质量较差的图,原图用于保存质量高的图片,质量差的图用于网页显示. PHP Code 复制代码 代码如下: <?php include_once("db.php"); include_once("dbinfo.php"); $connector = new nmdb($host, $username, $password); $connector -> select_db($database); $work_gro

  • PHP生成Gif图片验证码

    先看效果图  字体及字体文件的路径需要在类中$FontFilePath及$FontFileName中设置.如: 复制代码 代码如下: private static $FontFilePath = "static/font/"; //相对地本代码文件的位置private static $FontFileName = array("3.ttf");// array("1.ttf", "2.ttf", "3.ttf&quo

  • PHP实现GIF图片验证码

    这是一个用PHP生成GIF动画来实现动态图片验证码的程序,非常实用,是php用户注册登录界面经常需要用到的验证码程序,有需要GIF动态图片验证码功能的朋友可以收藏一下. 第一步:创建ImageCode.php文件,验证码生成函数代码如下: <?php /** * ImageCode 生成GIF图片验证 * @param $string 字符串 * @param $width 宽度 * @param $height 高度 * */ function ImageCode($string = '',

  • 完美实现GIF动画缩略图的php代码

    下面通过一个取自CS警匪游戏的GIF动画来说明问题: GIF动画图片:old.gif 为了让问题更加清晰,我们先还原动画各帧: 选择一:用PHP中的Imagick模块: 复制代码 代码如下: <?php $image = new Imagick('old.gif'); $i = 0; foreach ($image as $frame) { $frame->writeImage('old_' . $i++ . '.gif'); } ?> 选择二:用ImageMagick提供的conver

  • 配置PHP使之能同时支持GIF和JPEG

    问题:安装蓝点Linux 2.0后,进行PHP编程,发现只能处理GIF图像,不能处理JPEG图像.后来知道PHP处理图像,使用了GD库,而GD库开始时是支持GIF的,但由于GIF使用了有版权争议的LZW算法,会引起法律问题,于是从GD-1.6开始,GD库不再支持GIF,改为支持更好的,无版权争议的PNG.而我现在希望同时支持GIF,PNG和JPEG.经过尝试,我成功地做到了这一点.下面介绍具体做法.我的配置为:蓝点Linux 2.0,Kernel-2.2.16,MySQL-3.23.10alph

  • PHP水印类,支持添加图片、文字、填充颜色区域的实现

    *自己整理的一个水印类* 支持添加图片.文字.填充颜色区域 <?php /** * 图片加水印类,支持文字水印.透明度设置.自定义水印位置等. * 使用示例: * $obj = new WaterMask($imgFileName); //实例化对象 * $obj->$waterType = 1; //类型:0为文字水印.1为图片水印 * $obj->$transparent = 45; //水印透明度 * $obj->$waterStr = 'icp.niufee.com'; /

  • PHP 图片水印类代码

    支持文字水印.图片水印 支持水印的位置随机或固定(九宫格) 水印透明度设置(图片水印和文字水印都支持) 文字水印的字体.颜色.大小设置 图片水印的背景透明 复制代码 代码如下: <?php /** * 加水印类,支持文字图片水印的透明度设置.水印图片背景透明. * 日期:2011-09-27 * 作者:www.jb51.net * 使用: * $obj = new WaterMask($imgFileName); //实例化对象 * $obj->$waterType = 1; //类型:0为文

  • HTML5附件拖拽上传drop & google.gears实现代码

    腾讯微博也已近实现了拖拽上传.其实很简单. 由于没有服务器支持在文章里不能做上传演示,下载实例 拖拽上传需要什么支持 1:需要浏览器支持 drop 事件.(响应拖拽事件获取file对象); 2:XMLHttpRequest 对象有 sendAsBinary 方法(用于发送数据); 以上两个条件 目前仅有 firefox 能达到. chrome 第一项达标,第2项可以使用 google.gears 来模拟. 所以能实现拖拽上传的浏览器 有 firefox3.6 + 和 chrome7+. 如何实现

  • 快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)

    记录两个项目开发中遇到的问题,一个是ECharts外部调用保存为图片操作,一个是workflow工作流连接曲线onmouseenter和onmouseleave事件由于鼠标移动过快触发问题. 一.外部按钮调用ECharts图表的保存为图片操作 最近使用ECharts库绘制图表,依据需求希望可以把图表设置的保存为图片操作可以在图表外部调用,主要是希望可以和项目之前的下载图片操作界面保持一致.然后上网找了一些方法,看了看也没遇到一个可以满意的.后来,突然想到了echart开放了源码,可以看看源码,找

  • Angularjs实现上传图片预览功能

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <input type="file" ng-file-select="onFileSelect($files)" accept="image/*"> app.factory("fileReader", function($q, $log) { var onLoad = function(reader, deferred, scope) { return func

  • 使用Java进行图像处理的一些基础操作

    图像是由一组像素构成,用二进制形式保存的图片.java语言支持GIF.JPEG和BMP这3种主要图像文件格式.java语言的图像处理功能被封装在Image类中. 图像载入和输出 在java程序中,图像也是对象,所以载入图像时,先要声明Image对象,然后,利用getImage()方法把Image对象与图像文件联系起来.载入图像文件的方法有两个: Image getImage(URL url),url指明图像所在位置和文件名. Image getImage(URL url,String name)

  • 最好用的Bootstrap fileinput.js文件上传组件

    本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo 二.插件引入 <link type="text/css" rel="stylesheet" href="${ctx}/components/fileinput/css/fileinput.css" /> <script type="text/javascript

  • .net jquery绘制自定义表单源码分享

    前言 两年前在力控的时候就想做一个类似的功能,当时思路大家都讨论好了,诸多原因最终还是夭折了.没想到两年多后再这有重新提出要写一个绘制表单的功能.对此也是有点小激动呢?总共用时8.5天的时间基本功能也就实现了,当然再者中间也借用了网上的一些资料,公司前端也没有帮忙处理,所以样式和部分功能还没有更好地得到处理,github上出的code只有前端脚本,至于后端的处理,会在博客中体现出来. 1.工作前准备 1.1.实现的思路 思路一: (1)ueditor添加自定义按钮 (2)绘制表单(控件会触发的脚

  • asp.net微信开发(永久素材管理)

    除了3天就会失效的临时素材外,开发者有时需要永久保存一些素材,届时就可以通过本接口新增永久素材. 最近更新,永久图片素材新增后,将带有URL返回给开发者,开发者可以在腾讯系域名内使用(腾讯系域名外使用,图片将被屏蔽). 请注意: 1.新增的永久素材也可以在公众平台官网素材管理模块中看到 2.永久素材的数量是有上限的,请谨慎新增.图文消息素材和图片素材的上限为5000,其他类型为1000 3.素材的格式大小等要求与公众平台官网一致.具体是,图片大小不超过2M,支持bmp/png/jpeg/jpg/

随机推荐