アップロードしたGIF画像を縮小
画像をアップロードした際にリサイズするプログラムを作っています。
jpegとgif形式アップロードを考えています。jpegのアップロードは
うまく作動しますが、gifをアップロードしても画像はサーバにアップできるのですが、縮小処理がされていません。
その際に表示されるエラーは以下です。
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /***/***/***/***/***/uploader.php on line 82
Warning: imagegif(): supplied argument is not a valid Image resource in /***/***/***/***/***/uploader.php on line 83
■ソースは以下です。
フォーム部分
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES); ?>" method="post" enctype="multipart/form-data">
<table class="main1 table001" align="center" cellpadding="5" cellspacing="0">
<tr>
<th nowrap>画像ファイル1<br>(gif,jpgのみ)</th>
<td nowrap><input type="file" name="gra1" size="50"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="confirm" value=" 確認画面へ " /> <input type="submit" name="reset" value="リセット" /></td>
</tr>
</table>
</form>
縮小処理部分
//写真ファイルのアップロード処理
if(strlen($gra1) > 0 ) {
//アップロードされたテンポラリファイルの情報を取得します
$fileinfo = pathinfo($gra1);
//debug($fileinfo);
$fileext = strtoupper($fileinfo[extension]);
if ($gra1_size > $MAX_FILESIZE || $gra1_size == 0) {
//アップロードファイルのサイズ上限をチェックします
$error=1;
$error_mes .= "画像1のサイズが大きすぎます。".$FILESIZE_COM."以下にしてください。<br />";
}elseif ($fileext != "JPG" && $fileext != "GIF") {
//アップロードファイルの拡張子をチェックします
$error=1;
$error_mes .= "JPG、GIF形式以外の写真ファイルは登録できません。<br />";
}else {
$mictime = microtime();
if($fileext=="JPG"){$imagefile1 = substr($mictime, 11) . substr($mictime, 2, 6) . ".jpg";}else if($fileext=="GIF"){$imagefile1 = substr($mictime, 11) . substr($mictime, 2, 6) . ".gif";}
//テンポラリファイルを一時フォルダに名前を変えて移動します
if (move_uploaded_file($_FILES['gra1']['tmp_name'], "$H_PHOTOTMP$imagefile1")) {
//画像縮小処理
$sfn1="$H_PHOTOTMP$imagefile1"; //読み込みファイル名
$dfn1="$H_PHOTOTMP$imagefile1"; //書き出しファイル名
list($lw1,$lh1,$type1,$attr1) = getimagesize($sfn1); //画像情報取得
if($type1==2){ //JPGならば処理
$sw1=$lw1*0.1; //サイズは縦横10%に
$sh1=$lh1*0.1;
$im_in1 = @imagecreatefromjpeg($sfn1); //元画像の読み込み
$im_out1 = @imagecreatetruecolor($sw1,$sh1); //縮小画像の作成
imagecopyresampled($im_out1,$im_in1,0,0,0,0,$sw1,$sh1,$lw1,$lh1); //縮小コピー
imagejpeg($im_out1,$dfn1); //ディスクに出力
//debug($dfn);
}else if($type1==1){ //GIFならば処理
$sw1=$lw*0.1;//$lw1*0.1; //サイズは縦横10%に
$sh1=$lw*0.1;//$lh1*0.1;
$im_in1 = @imagecreatefromgif($sfn1); //元画像の読み込み
$im_out1 = @imagecreatetruecolor($sw1,$sh1); //縮小画像の作成
imagecopyresampled($im_out1,$im_in1,0,0,0,0,$sw1,$sh1,$lw1,$lh1); //縮小コピー
imagegif($im_out1,$dfn1); //ディスクに出力
//debug($dfn);
}
//画像縮小処理ここまで
}else{
$error=1;
$error_mes .= "写真ファイル1のアップロードに失敗しました。<br />";
}
}
}
になります。
ご教授のほど宜しくお願い致します。
お礼
縮小できました。 イメージどおりになりました! とてもわかりやすいご説明ありがとうございました^^