imagegif
(PHP 4, PHP 5, PHP 7)
imagegif — 画像をブラウザあるいはファイルに出力する
説明
imagegif
( resource $image
[, mixed $to
= null
] ) : bool
imagegif() は画像 image
から to
に GIF ファイルを作成します。
引数 image
は
imagecreate() あるいは imagecreatefrom*
関数から返されたものです。
画像フォーマットは、imagecolortransparent() を 用いて画像を透明化しない限り GIF87a となります。 透明化した場合の画像フォーマットは GIF89a となります。
パラメータ
image
- imagecreatetruecolor() のような画像作成関数が返す画像リソース。
to
- ファイル保存先のパスあるいはオープン中のリソース (この関数が値を戻した後で自動的にクローズされます)。省略したり
null
を設定したりした場合は、画像ストリームを直接出力します。
返り値
成功した場合に true
を、失敗した場合に false
を返します。
警告
しかしながら、libgd がイメージの出力に失敗した場合、この関数は true
を返します。
例
例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 outputif(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 memoryif($im){ imagedestroy($im);}?>
注意:
種々のイメージ関数のサポートを調べるために 関数 imagetypes() を使用することが可能です。
<?phpif(imagetypes() & IMG_GIF){ header('Content-type: image/gif'); imagegif($im);}elseif(imagetypes() & IMG_JPG){ /* ... etc. */}?>
参考
- imagepng() - PNG イメージをブラウザまたはファイルに出力する
- imagewbmp() - 画像をブラウザあるいはファイルに出力する
- imagejpeg() - 画像をブラウザあるいはファイルに出力する
- imagetypes() - この PHP がサポートしている画像形式を返す