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
imagegd2
(PHP 4 >= 4.0.7, PHP 5)
imagegd2 — GD2 イメージをブラウザまたはファイルに出力する
説明
bool imagegd2
( resource $image
[, string $filename
[, int $chunk_size
[, int $type
]]] )
GD2 イメージを、指定した filename に出力します。
パラメータ
- image
-
imagecreatetruecolor() のような画像作成関数が返す画像リソース。
- filename
-
保存するファイルへのパス。省略したり NULL を指定したりした場合は、生の画像ストリームが直接出力されます。
- chunk_size
-
チャンクの大きさ。
- type
-
IMG_GD2_RAW あるいは IMG_GD2_COMPRESSED のいずれかです。デフォルトは IMG_GD2_RAW です。
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
例
例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.gd');
// メモリを開放します
imagedestroy($im);
?>
注意
注意: この関数は、GD 2.0.1 以降を必要とします (2.0.28 以降を推奨します)。
注意: 通常 GD2 フォーマットはイメージの一部を高速にロードするために 使用されます。GD2 フォーマットは GD2 互換アプリケーションでのみ使用可能であることに注意してください。
変更履歴
| バージョン | 説明 |
|---|---|
| 4.3.2 | chunk_size および type が追加されました。 |
imagegd2
mark at teckis dot com
16-Apr-2003 03:33
16-Apr-2003 03:33
mysterium at gmx _spamsux_ dot ch
11-Feb-2003 11:35
11-Feb-2003 11:35
A little more information: http://www.boutell.com/gd/manual2.0.11.html#gdImageGd2
For me, the gd2 format is intended for faster loading and writing. I didn't test this yet.
