imagegif

(PHP 4, PHP 5, PHP 7)

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

説明

imagegif ( resource $image [, mixed $to ] ) : bool

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

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

パラメータ

image

imagecreatetruecolor() のような画像作成関数が返す画像リソース。

to

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

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

警告

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

変更履歴

バージョン 説明
5.4.0 ストリームリソースを to に渡せるようになりました。

例1 imagegif() による画像の出力

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

// 背景を白にします
imagefilledrectangle($im0099990xFFFFFF);

// テキスト文字列を画像の上に描画します
imagestring($im34020'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!';
?>

注意

注意:

GIF のサポートは GD ライブラリのバージョン 1.6 でいったん削除され、バージョン 2.0.28 で復活しました。この間のバージョンではこの関数は使えません。 詳細な情報は » GD Project のサイトを参照ください。

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

<?php
// Create a new image instance
$im imagecreatetruecolor(100100);

// 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($imNULL100);
}
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() - PNG イメージをブラウザまたはファイルに出力する
  • imagewbmp() - 画像をブラウザあるいはファイルに出力する
  • imagejpeg() - 画像をブラウザあるいはファイルに出力する
  • imagetypes() - この PHP がサポートしている画像形式を返す