imagegif

画像をブラウザあるいはファイルに出力する

説明

bool imagegif(GdImage $image, resourcestringnull $file = null)

imagegif は画像 image から fileGIF ファイルを作成します。 引数 imageimagecreate あるいは imagecreatefrom* 関数から返されたものです。

画像フォーマットは、imagecolortransparent を 用いて画像を透明化しない限り GIF87a となります。 透明化した場合の画像フォーマットは GIF89a となります。

パラメータ

image

imagecreatetruecolorのような画像作成関数が返す GdImage オブジェクト。

file

ファイル保存先のパスあるいはオープン中のリソース (この関数が値を戻した後で自動的にクローズされます)。省略したり null を設定したりした場合は、画像ストリームを直接出力します。

戻り値

成功した場合に true を、失敗した場合に false を返します。

警告

しかしながら、libgd がイメージの出力に失敗した場合、この関数は true を返します。

変更履歴

バージョン 説明
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。

例1 imagegif による画像の出力

<?php
// 新しい画像のインスタンスを作成します
$im = imagecreatetruecolor(100, 100);

// 背景を白にします
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);

// テキスト文字列を画像の上に描画します
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

// 画像をブラウザに出力します
header('Content-Type: image/gif');

imagegif($im);
imagedestroy($im);
?>

例2 imagegif による PNG 画像から GIF への変換

<?php

// PNG を読み込みます
$png = imagecreatefrompng('./php.png');

// 画像を GIF 形式で保存します
imagegif($png, './php.gif');

// メモリから開放します
imagedestroy($png);

// 終了です
echo 'Converted PNG image to GIF with success!';
?>

注意

注意:

以下の短いコードにより、利用可能な GD サポートの型を自動検出して 汎用性のある PHP アプリケーションを書くことが可能です。 header ("Content-Type: image/gif"); imagegif ($im); の部分を、より柔軟性のある このコードに置換してください。

<?php
// Create a new image instance
$im = imagecreatetruecolor(100, 100);

// Do some image operations here

// Handle output
if(function_exists('imagegif'))
{
    // For GIF
    header('Content-Type: image/gif');

    imagegif($im);
}
elseif(function_exists('imagejpeg'))
{
    // For JPEG
    header('Content-Type: image/jpeg');

    imagejpeg($im, NULL, 100);
}
elseif(function_exists('imagepng'))
{
    // For PNG
    header('Content-Type: image/png');

    imagepng($im);
}
elseif(function_exists('imagewbmp'))
{
    // For WBMP
    header('Content-Type: image/vnd.wap.wbmp');

    imagewbmp($im);
}
else
{
    imagedestroy($im);

    die('No image support in this PHP server');
}

// If image support was found for one of these
// formats, then free it from memory
if($im)
{
    imagedestroy($im);
}
?>

注意:

種々のイメージ関数のサポートを調べるために 関数 imagetypes を使用することが可能です。

<?php
if(imagetypes() & IMG_GIF)
{
    header('Content-type: image/gif');
    imagegif($im);
}
elseif(imagetypes() & IMG_JPG)
{
    /* ... etc. */
}
?>

参考

  • imagepng
  • imagewbmp
  • imagejpeg
  • imagetypes