PHP Conference Japan 2024

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_RAW, либо IMG_GD2_COMPRESSED. По умолчанию IMG_GD2_RAW.

Возвращаемые значения

Функция возвращает true в случае успешного выполнения или false, если возникла ошибка.

Предостережение

Однако, если libgd не может вывести изображения, эта функция вернёт true.

Список изменений

Версия Описание
8.0.3 file теперь допускает значение null.
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, "Простая Текстовая Строка", $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, "Простая Текстовая Строка", $text_color);

// Сохранение изображения
// Формат файлов GD2 - .gd2, смотрите http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

// Освобождение памяти
imagedestroy($im);
?>

Примечания

Замечание:

Формат GD2 используется в основном для быстрой загрузки частей изображений. Следует учитывать, что GD2 формат может использоваться только в GD2-совместимых приложениях.

Внимание

Форматы изображений GD и GD2 являются проприетарными форматами изображений libgd. Они должны рассматриваться как устаревшие и должны использоваться только для целей разработки и тестирования.

Смотрите также

  • imagegd() - Вывод GD-изображения в браузер или в файл
Добавить

Примечания пользователей 2 notes

up
2
Nick
13 years ago
You can use this function in combination with imagecreatefromstring() to clone the gd resource with minimum fuss (no writing to tmp file):

<?php
function cloneGd($gd)
{
ob_start();
imagegd2($gd);
return
imagecreatefromstring(ob_get_clean());
}
?>
up
0
mark at teckis dot com
21 years ago
yes, the gd2 file format does improve the speed of image creations as the data-setup is designed to be native for the GD function - ie, the image doesn't have to be converted to a usable format prior to processing.

you may also note that the newer gd2 format creates much smaller size files than the older imagegd function, certainly for images involving chunks of single colours anyway. you'll probably find this function most useful for saving overlay images or background images used in larger image creation scripts.

to read a ping or jpeg image (.png / .jpg) and save a .gd2 version to server...

$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');
}
}

should save a copy with the same filename and directory using extension .gd2 - which can then be nicely and swiftly read using either imagecreatefromgd2 or imagecreatefromgd2part
To Top