2009 年 2 月 18 日
PHPでアップロードしたJPEGファイルをGIFファイルに変換する
とあるPHPスクリプトで、GIFファイルのみアップロードを許可してJPEGファイルがアップロードしたらエラーを返していました。ユーザビリティを考えるとあまり親切ではないので、JPEGファイルがアップロードされたら、自動的に変換するようにしようと思い、ちょいと調べてみました。
//アップロード先パス $filepath = "/path/to/filename.gif"; //アップロードしたファイルを保存 move_uploaded_file($_FILES['file']['tmp_name'], $filepath); //書き込み許可属性を付ける chmod($filepath, 0777); if (preg_match("/jpeg/", $_FILES['file']['type'])) {//JPEGの場合GIF変換 //JPEGファイルを展開 $img = imagecreatefromjpeg($filepath); //GIF形式で保存 imagegif($img, $filepath); //メモリを解放 imagedestroy($img); }
※実際には様々なエラー処理が必要です。PHPでのファイルアップロード処理に関しては割愛します。他を参照してください。
基本的にはPHPの関数 imagecreatefromjpeg() と imagegif() を使用して簡単にできました。もちろんGDのサポートは必須です。