(PHP 4, PHP 5, PHP 7)
imagegif — 画像をブラウザあるいはファイルに出力する
imagegif() は画像 image
から to
に GIF ファイルを作成します。
引数 image
は
imagecreate() あるいは imagecreatefrom*
関数から返されたものです。
画像フォーマットは、imagecolortransparent() を 用いて画像を透明化しない限り GIF87a となります。 透明化した場合の画像フォーマットは GIF89a となります。
image
imagecreatetruecolor() のような画像作成関数が返す画像リソース。
to
ファイル保存先のパスあるいはオープン中のリソース (この関数が値を戻した後で自動的にクローズされます)。省略したり NULL
を設定したりした場合は、画像ストリームを直接出力します。
成功した場合に TRUE
を、失敗した場合に FALSE
を返します。
しかしながら、libgd がイメージの出力に失敗した場合、この関数は TRUE
を返します。
バージョン | 説明 |
---|---|
5.4.0 |
ストリームリソースを
to に渡せるようになりました。
|
例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!';
?>
注意:
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(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. */
}
?>