技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> PHP --> PHP图像处理组件GD的常用函数总结――图像创建和销毁相关函数

PHP图像处理组件GD的常用函数总结――图像创建和销毁相关函数

浏览:1901次  出处信息

前一篇,我们讲了一些GD库的基本函数,这篇讲一下创建图像相关的函数。图像创建和销毁函数主要有以下几个:
imagecreatetruecolor
创建一个真彩的空白图像。
imagecreatefromgif
从GIF文件或URL读取并新建一图像
imagecreatefromjpeg
从JPG文件或URL读取并新建一图像
imagecreatefrompng
从PNG文件或URL读取并新建一图像
imagecreatefromwbmp
从WBMP文件或URL读取并新建一图像
imagecreatefromstring
从字符串中的图像流新建一图像
imagedestroy
销毁一图像

说明一下,这里所说的创建和销毁图像,都是在内存中建立或清除图像资源,而不是创建或删除图像文件。

接下来就具体讲述这些函数了。

imagecreatetruecolor
新建一个真彩色图像

原型:resource imagecreatetruecolor ( int x_size, int y_size )

返回一个图像标识符,代表了一幅大小为 x_size 和 y_size 的黑色图像。

例子:
<?php
header("Content-type: image/png");
$im = @imagecreatetruecolor(50, 100)
      or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  "A Simple Text String", $text_color);
imagepng($im);
imagedestroy($im);
?>

imagecreatefromgif
从 GIF 文件或 URL 新建一图像

原型:resource imagecreatefromgif ( string filename )

返回一图像标识符,代表了从给定的文件名取得的图像。在失败时返回一个空字符串,并且输出一条错误信息。
这种结果很不方便我们的调试,为减轻调试工作下面的例子会产生一个错误 GIF:
例子:处理创建过程中的错误
<?php
function LoadGif($imgname)
{
    $im = @imagecreatefromgif($imgname); /* Attempt to open */
    if(!$im) { /* See if it failed */
        $im = imagecreatetruecolor(150, 30); /* Create a blank image */
        $bgc = imagecolorallocate($im, 255, 255, 255);
        $tc = imagecolorallocate($im, 0, 0, 0);
        imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
        /* Output an errmsg */
        imagestring($im, 1, 5, 5, "Error loading $imgname", $tc);
    }
    return $im;
}
?>
如果“fopen wrappers”已经被激活,则在本函数中可以把 URL 作为文件名来使用。

其他几个从图像文件创建图像的函数和imagecreatefromgif的参数是一样的,这里不再赘述。
imagecreatefromjpeg 从 JPEG 文件或 URL 新建一图像
imagecreatefrompng 从 PNG 文件或 URL 新建一图像
imagecreatefromwbmp 从 WBMP 文件或 URL 新建一图像

imagecreatefromstring
这个函数比较特殊,是从字符串中的图像流新建一图像,这个图像流一般是一个图像文件用二进制读取然后通过base64编码,转化成一个字符串的,本函数可以从这样的一个字符串中途去一个图像。

原型:resource imagecreatefromstring ( string image )

返回一个图像标识符,其表达了从给定字符串得来的图像。图像格式将自动检测,只要 PHP 支持:JPEG,PNG,GIF,WBMP 和 GD2。成功则返回图像资源,如果图像格式不支持,数据不是认可的格式,或者图像已损坏则返回 FALSE。
例子:
<?php
$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
}
else {
    echo 'An error occured.';
}
?>

imagedestroy
销毁一图像

原型:bool imagedestroy ( resource image )

释放与 image 关联的内存。image 是由图像创建函数返回的图像标识符。

建议继续学习:

  1. PHP图像处理组件GD的常用函数总结――基本信息函数    (阅读:2857)
  2. PHP图像处理组件GD的常用函数总结――图像输出相关函数    (阅读:2331)
  3. 网络图像优化总结    (阅读:2226)
  4. PHP任意图像裁剪成固定大小    (阅读:2091)
  5. PHP图像处理组件GD的常用函数总结――图像转换相关函数    (阅读:2026)
  6. PHP图像处理组件GD的常用函数总结――概述    (阅读:1723)
  7. 如何在终端显示图像缩略图    (阅读:796)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1