imagegd2

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

imagegd2 β€” Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ GD2-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»

ОписаниС

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

Ѐункция Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ»ΠΈ сохраняСт ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ image Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ GD2.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

image
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ GdImage, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½ΡƒΠ»Π° функция imagecreatetruecolor() ΠΈΠ»ΠΈ другая функция Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ.
file

ΠŸΡƒΡ‚ΡŒ ΠΈΠ»ΠΈ рСсурс ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ функция автоматичСски Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ послС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° значСния, для сохранСния Ρ„Π°ΠΉΠ»Π°. Ѐункция Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΏΠΎΡ‚ΠΎΠΊ Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠ³ΠΎ изобраТСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Ссли ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½Π΅ установили ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π² Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.

chunk_size

Π Π°Π·ΠΌΠ΅Ρ€ части изобраТСния.

mode

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ IMG_GD2_RAW ΠΈΠ»ΠΈ IMG_GD2_COMPRESSED. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ равняСтся IMG_GD2_RAW.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

Ѐункция Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ true, Ссли Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»Π°ΡΡŒ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, ΠΈΠ»ΠΈ false, Ссли Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка.

ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π΅Ρ€Π΅ΠΆΠ΅Π½ΠΈΠ΅

Ѐункция Π²Π΅Ρ€Π½Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли вывСсти ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ срСдствами Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libgd Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

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

ВСрсия ОписаниС
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);

?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ #2 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сохранСния GD2-изобраТСния

<?php

// Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ пустого изобраТСния ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅Π³ΠΎ тСкста
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5, "ΠŸΡ€ΠΎΡΡ‚Π°Ρ ВСкстовая Π‘Ρ‚Ρ€ΠΎΠΊΠ°", $text_color);

// Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ изобраТСния
// Π€Π°ΠΉΠ»Ρ‹ GD2-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ .gd,
// ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² рассказываСт страница http://www.libgd.org/GdFileFormats
imagegd2($im, 'simple.gd2');

?>

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅:

Π’ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ GD2 часто быстро Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ части ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ GD2 ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ GD2-совмСстимыС прилоТСния.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅

Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ GD ΠΈ GD2 β€” ΠΏΡ€ΠΎΠΏΡ€ΠΈΠ΅Ρ‚Π°Ρ€Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libgd. Π€ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ устарСли ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² цСлях Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ тСстирования.

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • imagegd() - Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ GD-ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€ ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 3 notes

up
2
Nick ΒΆ
14 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
Anonymous ΒΆ
10 months ago
This function produces an empty file (0 bytes) if a gdlib version is used without gd2 image format support. Which is planed to be removed completely with gdlib 3.
up
-1
mark at teckis dot com ΒΆ
23 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