
画像をアップロードした際にリサイズするプログラムを作っています。
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 />";
}
}
}
になります。
ご教授のほど宜しくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
以下の部分の$lwという変数は突然でてきているのですが、どこかで定義されているのでしょうか。
$sw1=$lw*0.1;//$lw1*0.1; //サイズは縦横10%に
$sh1=$lw*0.1;//$lh1*0.1;
でなければ$sw1、$sh1は0となり以降のimagecreatetruecolorに失敗しているはずです。
imagecreatetruecolorの@を外して確認してみてください。
ご指摘ありがとうございます。
こっちの確認ミスでした。
$sw1=$lw*0.1;//$lw1*0.1; //サイズは縦横10%に
$sh1=$lw*0.1;//$lh1*0.1;
変数の入力ミスです
$lw→$lw1
修正したらちゃんと動きました。
ありがとうございます。
No.1
- 回答日時:
>supplied argument is not a valid Image resource
ということで、imagecreatefromgifが正常にGIF画像を生成できてないのではないでしょうか。
imagecreatefromgif関数の前に「@(エラー制御子)」が付加されているので、これをはずした場合に、何らかのエラーは出てきませんか?
また、一度アップロードするGIF画像も別のものに変更してから行ってみてはどうでしょう。
この回答への補足
ちなみに画像を変えてみても結果は同じです。
imagecreatefromgif関数の前の「@(エラー制御子)」をはずした場合も
同じエラー表示になりました。
これ以上無理なのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
拡張子php画像をjpg画像等に変...
-
SQLiteに画像を格納したい
-
phpのheader("Location:#pos")...
-
*.php、*.php3、*.phtmlの違い
-
phpのextension_dirを複数指定...
-
PHP PDOライブラリが読み込まれ...
-
phpでメール送信できません 原...
-
header(Location:~)で$_SESS...
-
<A href ~ と一緒に値を渡すには
-
さくらインターネットでメール...
-
【PHP】tmp_nameの命名規約につ...
-
php4とphp5での数値の取り扱い...
-
テレメールとは?
-
PHPでメールを受信するには?
-
データ送信をボタンを押さずに...
-
PEAR(Image_QRCode)のエラー
-
Apache 2.4でphp-5.3を使いたい...
-
セッションについての設定なの...
-
require_once()でファイルが読...
-
HTML文をなんとか隠蔽したいの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
SQLiteに画像を格納したい
-
拡張子php画像をjpg画像等に変...
-
Illustratorで文字と画像を流し...
-
手作業で埋め込んだ、UserForm1...
-
PythonのTkinter詳しい方へ。画...
-
VBAでJPGサイズ変更
-
pictureboxに表示した画像のフ...
-
「imagejpeg」(GD)で作成した...
-
VBAのコードを教えてください
-
C#とJavaで、MP3タグの画像を表...
-
透過PNGが透過されない!!
-
phpMyAdminに画像を保存できない
-
PHP getimagesize();
-
wordpressサイトにて、画像ウィ...
-
libpngでpng操作がうまくいかない
-
Wordpressの条件で複数画像を表...
-
'member_picture/'に/がありま...
-
php,mysqlにて画像パス保存/表...
-
DBからPHP出力された画像の情報...
おすすめ情報