`
redalx
  • 浏览: 181864 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

PHP图像处理--GD

阅读更多
今天要用GD来处理图像,先收集一下文档:
(以下来自:http://hi.chinaunix.net/?10064369)
一.gd_info  -  取得当前安装的GD库的信息
1.格式:array gd_info(void)
2.解析:返回一个数组,包含了GD库的版本,支持的图像格式等信息,如:


<?php
var_dump(gd_info());
?>

//输出
array(9) {
  ["GD Version"]=>
  string(24) "bundled (2.0 compatible)"
  ["FreeType Support"]=>
  bool(false)
  ["T1Lib Support"]=>
  bool(false)
  ["GIF Read Support"]=>
  bool(true)
  ["GIF Create Support"]=>
  bool(false)
  ["JPG Support"]=>
  bool(false)
  ["PNG Support"]=>
  bool(true)
  ["WBMP Support"]=>
  bool(true)
  ["XBM Support"]=>
  bool(false)
}


["PNG Support"]=>  bool(true) 说明当前的GD库支持PNG格式的图片,

["JPG Support"]=>  bool(false) 说明当前的GD库不支持JPG格式的图片。

3.用法:通过对这个函数返回信息的一些判断,可以写出更通用的程序,如GD库不支持JPG时抛出一个错误:


$arr1_gd_info = gd_info();
if ( !$arr1_gd_info['JPG Support'])
{
    echo '当前GD库不支持JPG格式的图片';
}

二.getimagesize  -  取得图像大小
1.格式:array getimagesize ( string filename [, array &imageinfo] )
2.解析:string filename表示要传入一个字符串格式的文件名,路径必须能访问到。第二个参数可以不用。如果函数执行成功,则返回一个含有四个单元的数组;如果执行失败,返回false。返回数组例:

<?php
print_r(getimagesize('test.jpg'));
?>
//输出
Array
(
    [0] => 600
    [1] => 443
    [2] => 1
    [3] => width="600" height="443"
    [bits] => 8
    [channels] => 3
    [mime] => image/gif
)


索引0给出的是图像的宽度的像素值;
索引1给出的是图像的高度的像素值;
索引2给出的是图像的类型,返回的是数字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM;
索引3给出的是一个宽度和高度的字符串,可以直接用于HTML的<image>标签。
索引bits给出的是图像的每种颜色的位数,二进制的;(低版本的GD可能不返回这个值)
索引channels给出的是图像的通道值,RGB图像默认是3.(低版本的GD可能不返回这个值)
索引mime给出的是图像的MIME信息,此信息可以用来在 HTTP Content-type 头信息中发送正确的信息,如:

header("Content-type: image/png");
(低版本的GD可能不返回这个值),对于低版本的GD获得MIME,请使用下面的函数image_type_to_mime_type().
用法:获得图像的宽度和高度


$image_info = getimagesize('test.jpg');
echo '图像的宽度是:'.$image_info[0].'px<br>';
echo '图像的高度度是:'.$image_info[1].'px<br>';

三.image_type_to_mime_type  -  取得图像的MIME类型
1.格式:image_type_to_mime_type ( int imagetype )
2.解析:取得图像的MIME类型,传入的参数是getimagesize函数返回的数组中的索引2的值,如:

<?php
$img_size = getimagesize('gd_image/gif.gif');
$mime_type = image_type_to_mime_type($img_size[2]);
echo $mime_type;
?>
//输出
image/gif

四.imagesx - 取得图像的宽度像素值
1.格式:imagesx ( resource image )
2.解析:取得图像的宽度像素值,传入的参数是一个资源类型的变量,通过imagecreate,imagecreatetruecolor,imagecreatefromgif等函数的返回值。如:

<?php
$im_gif = imagecreatefromgif('gd_image/gif.gif');
$x = imagesx($im_gif);
echo '图片的宽度是 :'.$x.'px<br>';
?>
//输出
图片的宽度是 :600px
这个函数只能在创建画布之后调用,不能通过传入一个图片的文件名来调用。

五.imagesy - 取得图像的高度像素值
1.格式:imagesy ( resource image )
2.解析:基本同imagesx,只不过是获得的图像的高度值

六.imagetypes - 返回当前 PHP 版本所支持的图像类型
1.格式:imagetypes ( void )
2.解析:返回的是PHP版本所支持的图像类型,是一个数字,如:

<?php
echo imagetypes();
?>
//输出
15
3.用法:判断是否支持JPG

<?php
if (imagetypes() & IMG_PNG)
{
    echo "PNG Support is enabled";
}
else
{
     echo "PNG Support is not enabled";
}
?>
//输出
PNG Support is enabled
在画图之前首先需要创建一块画布,这个类似于画家先铺开一张白纸,又好比用画图软件新建一个空白图像,当然也可以打开一个已有图像进行修改,下面就介绍GD库里具有这些功能的几个函数。
一.imagecreate  -  创建一个画布1.格式:imagecreate ( int x_size, int y_size )2.解析:系统创建一块画布,返回的是系统分配给这块画布的一个资源id号,用于其它函数的调用;传入两个参数分别定义画布的宽度和高度,如:
?php
$im = imagecreate(200,150);
echo $im;
?>
//输出
Resource id #1
二.imagecreatetruecolor  -  创建一个真彩色的画布1.格式:imagecreatetruecolor ( int x_size, int y_size )2.解析:同imagecreate一样,创建一个空白的画布,区别在于这个函数创建的画布支持的色彩数更多,所以效果更好,传入画布宽度和高度的像素值,返回的是系统分配给这块画布的id号,如:?php$im = imagecreatetruecolor(200,150);echo $im;?>//输出Resource id #2
三.imagecreatefromgif  -  创建一块画布,并将一张gif格式的图片读取到这块画布1.格式:imagecreatefromgif ( string filename )2.解析:传入的参数是一张gif图片的文件名(加路径),如果其他格式的图片将会报一个错误,返回的是系统分配给这块画布的id号,用于别的画图函数的调用,如:
?php
$im = imagecreatefromgif('gd_image/gif.gif');
echo $im;
?>
//输出
Resource id #3
四.imagecreatefromjpeg  - 创建一块画布,并将一张jpg格式的图片读取到这块画布
1.格式:imagecreatefromjpeg ( string filename )
2.解析:传入的参数是一张jpg图片的文件名(加路径),如果其他格式的图片将会报一个错误,返回的是系统分配给这块画布的id号,用于别的画图函数的调用,如:?php$im = imagecreatefromjpeg('gd_image/gif.jpg');echo $im;?>//输出Resource id #4
五.imagecreatefrompng  -  创建一块画布,并将一张png格式的图片读取到这块画布1.格式:imagecreatefrompng ( string filename )2.解析:传入的参数是一张png图片的文件名(加路径),如果其他格式的图片将会报一个错误,返回的是系统分配给这块画布的id号,用于别的画图函数的调用,如:?php$im = imagecreatefromgif('gd_image/gif.gif');echo $im;?>//输出Resource id #4
分享到:
评论

相关推荐

    gd和gd-devel独立安装包(el7)

    `GD-devel`则是GD库的开发包,包含了头文件和静态库,使得开发者能够在自己的程序中使用GD库进行图形处理功能的开发。在不能直接访问互联网的环境下,手动下载和安装这些依赖包是一项必要的任务。下面将详细介绍如何...

    gd-2.2.5.tar.gz

    GD库,全称为“Graphics Draw”,是PHP中用于图像处理的重要库,提供了创建和修改图像的基本功能,如动态生成图片、支持多种图像格式(JPEG, PNG, GIF, BMP等)以及文字渲染。 描述中提到,为了在PHP 5.6环境中使用...

    gd-2.0.34.tar.gz

    标题中的"gd-2.0.34.tar.gz"是一个软件包的名称,这通常指的是GD库的一个版本,GD是Graphics Draw的缩写,是一个用于创建动态图像的开源C库。GD库广泛应用于PHP、Perl等脚本语言中,用于处理图像,如生成图表、...

    Go-go-gdGD库的Go绑定

    Go-go-gd库是将GD库与Go语言进行结合的一个项目,它提供了Go语言对GD图像处理库的原生接口,使得Go开发者可以方便地在Go程序中进行图像操作。GD库本身是一个广泛使用的开源图形库,支持多种图像格式的创建、修改和...

    PHP 图像处理

    以下是对PHP图像处理及其相关函数的详细解释: 1. **获取图像信息** - `getimagesize()` 函数是获取图像基本信息的关键工具,它返回一个包含图像宽度、高度、类型以及元数据的数组。例如,`getimagesize("image....

    gd-2.1.1.tar.gz

    总之,GD-2.1.1.tar.gz是一个包含GD库源代码的压缩包,主要用于在Linux Apache环境中进行图像处理,它的功能强大,适用范围广泛,是Web开发中不可或缺的一部分。通过编译和安装,开发者可以将其集成到自己的项目中,...

    gd-2.0.35.tar.gz

    GD库是用于在PHP中创建和处理图像的重要组件,它提供了广泛的图形处理功能,包括创建、修改、输出和处理各种图像格式。这里的"gd-2.0.35.tar.gz"是一...了解并熟练使用GD库,能极大提升你在PHP图像处理领域的专业能力。

    PHP图像处理库.zip

    "PHP图像处理库"便是一个这样的工具,它旨在为开发者提供更强大、更灵活的图像处理功能。 "ImageWorkshop"是这个库的名字,从压缩包中的文件名"ImageWorkshop-master"可以推断,这可能是该库的源代码仓库。通常,...

    php图像处理实例

    在PHP中,图像处理是一项重要的技能,特别是在网页开发和动态生成图像时。PHP提供了一组强大的GD库(Graphics Draw)函数,使得我们能够创建、编辑和处理图像。本实例将探讨如何利用PHP内部函数实现图像和文字的嵌套...

    gd-2.0.32 tar.gz

    总的来说,GD-2.0.32 tar.gz是一个用于PHP的图像处理库,它提供了一系列强大的图像处理功能,包括创建、读取、修改和输出图像。开发者可以通过这个库轻松地在PHP项目中实现图像操作,提升网站的交互性和功能性。

    php图像处理类.zip

    这个"php图像处理类.zip"文件提供了一个专门用于图像处理的PHP类库,它可以帮助开发者更方便、高效地执行这些任务。以下是对这个类库的详细解释。 首先,PHP提供了几个内置的图像处理函数,如GD库(GD2)和Imagick...

    gd-2.0.27.tar.gz

    它提供了丰富的函数集,让开发者能够方便地进行图像处理操作。 描述中的 "apache+php+mysql" 提到了一个常见的Web开发环境组合,即LAMP(Linux + Apache + MySQL + PHP)。Apache是世界上最流行的Web服务器软件,...

    GD-2.18.tar.gz

    例如,GD-2.18可能引入了更好的图像处理算法,优化了内存管理,或者增加了对某些特定图像格式的支持。 在Linux环境中,要解压GD-2.18.tar.gz,你需要使用`tar`命令。首先,使用`tar -zxvf GD-2.18.tar.gz`来解压...

    GD-2.46.tar.gz

    总的来说,"GD-2.46.tar.gz"在Zabbix监控部署中扮演了图像处理的关键角色,它的安装和配置对于提供良好的监控体验至关重要。理解PHP与GD库的关系,以及如何正确安装和使用它们,对于成功部署和维护Zabbix系统具有...

    gd-2.0.33.tar.gz

    1. **环境准备**:确保你的系统安装了必要的编译工具,如GCC编译器、Make、autoconf等,以及相关的依赖库,例如JPEG、PNG、FreeType等图像处理库的开发头文件和库文件。 2. **解压源码**:使用`tar -zxvf gd-2.0.33...

    php_gd2_php_gd.dll_

    PHP GD库是PHP编程语言中的一个核心扩展,主要用于处理图像,包括创建、修改和显示多种图像格式,如JPEG、PNG、GIF等。...正确配置和使用GD库可以帮助开发者实现各种图像处理需求,从而提升网站或应用程序的用户体验。

    centos7.9离线安装PHP环境依赖

    这些包是PHP运行时需要的基础模块,用于处理数据库连接、XML解析、图像处理、FTP操作等。 离线安装步骤如下: 1. **下载依赖**: 将压缩包文件上传到CentOS 7.9服务器的某个目录,例如 `/home/user/`。 2. **解压...

    PHP图像处理程序

    当我们谈论"PHP图像处理程序"时,...总之,PHP图像处理程序结合GD2库,为开发者提供了强大的图像操作能力,使得在Web应用程序中实现复杂的图像功能成为可能。熟练掌握这些技巧,将有助于提升网站的用户体验和功能性。

Global site tag (gtag.js) - Google Analytics