imagegd2

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagegd2将 GD2 图像输出到浏览器或文件

描述

imagegd2(
    GdImage $image,
    ?string $file = null,
    int $chunk_size = 128,
    int $mode = IMG_GD2_RAW
): bool

将 GD2 图像输出到给定的 file

参数

image

一个 GdImage 对象,由图像创建函数之一返回,例如 imagecreatetruecolor()

file

保存文件的路径或打开的流资源(此函数返回后会自动关闭)。如果未设置或为 null,则会直接输出原始图像流。

chunk_size

块大小。

mode

IMG_GD2_RAWIMG_GD2_COMPRESSED。默认值为 IMG_GD2_RAW

返回值

成功时返回 true,失败时返回 false

警告

但是,如果 libgd 无法输出图像,此函数将返回 true

变更日志

版本 描述
8.0.3 file 现在可以为空。
8.0.0 image 现在期望一个 GdImage 实例;以前,期望一个有效的 gd resource

示例

示例 #1 输出 GD2 图像

<?php
// 创建一个空白图像并添加一些文本
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);

// 输出图像
imagegd2($im);

// 释放内存
imagedestroy($im);
?>

示例 #2 保存 GD2 图像

<?php
// 创建一个空白图像并添加一些文本
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);

// 保存 gd2 图像
// GD2 图像的文件格式为 .gd2,参见 http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// 释放内存
imagedestroy($im);
?>

注释

注意:

GD2 格式通常用于允许快速加载图像的各个部分。请注意,GD2 格式仅可在支持 GD2 的应用程序中使用。

警告

GD 和 GD2 图像格式是 libgd 的专有图像格式。它们必须被视为 *已过时*,并且仅应用于开发和测试目的。

参见

  • imagegd() - 将 GD 图像输出到浏览器或文件
添加注释

用户贡献的注释 2 个注释

Nick
13 年前
您可以将此函数与 imagecreatefromstring() 结合使用,以最少的麻烦克隆 gd 资源(无需写入临时文件)

<?php
function cloneGd($gd)
{
ob_start();
imagegd2($gd);
return
imagecreatefromstring(ob_get_clean());
}
?>
mark at teckis dot com
21 年前
是的,gd2 文件格式确实提高了图像创建的速度,因为数据设置被设计为对 GD 函数来说是本地的 - 即,图像在处理之前不需要转换为可用的格式。

您可能还会注意到,较新的 gd2 格式创建的文件比旧的 imagegd 函数创建的文件要小得多,对于涉及单色块的图像尤其如此。您可能会发现此函数最适合保存用于较大图像创建脚本的叠加图像或背景图像。

要读取 ping 或 jpeg 图像 (.png / .jpg) 并保存 .gd2 版本到服务器...

$img = $_GET['img'];
if(file_exists($img))
{
$dim = getimagesize($img);
$cr = ($dim[2] < 4) ? ($dim[2] < 3) ? ($dim[2] < 2) ? NULL : imagecreatefromjpeg($img) : imagecreatefrompng($img) : Null;
if($cr !== NULL)
{
imagegd2($cr,substr($img,0,strrpos($img,'.')).'.gd2');
}
}

应该保存一个具有相同文件名和目录的副本,使用扩展名 .gd2 - 然后可以使用 imagecreatefromgd2 或 imagecreatefromgd2part 很方便快捷地读取它。
To Top