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 を返します。
注意
注意: この関数は、GD 2.0.1 以降を必要とします (2.0.28 以降を推奨します)。
注意: 通常 GD2 フォーマットはイメージの一部を高速にロードするために 使用されます。GD2 フォーマットは GD2 互換アプリケーションでのみ使用可能であることに注意してください。
変更履歴
| バージョン | 説明 |
|---|---|
| 4.3.2 | chunk_size および type が追加されました。 |
参考
| imagegd() |
imagegd2
mark at teckis dot com
16-Apr-2003 10:33
16-Apr-2003 10:33
mysterium at gmx _spamsux_ dot ch
11-Feb-2003 07:35
11-Feb-2003 07: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.