お世話になります。PHP初心者でわからないことだらけなんですが、教えてください。
画像をアップロード後、サイズを変更するスクリプトを作成したのですが、JEG画像サイズが大きくなるとimagecreatefromjpegの点でエラーになってしまいます。詳しくは「ページを表示できません。」と出てきます。ある程度までのサイズは問題なく実行されるのですが、やはりメモリ制限によるエラーなのでしょうか?
スクリプトは下記のとおりです。
************************************************
$gdimg_in = imagecreatefromjpeg($file_path);
$ix = imagesx($gdimg_in);
$iy = imagesy($gdimg_in);
/*ファイルのサイズを設定*/
if ($ix > $iy) {/*************横長の場合*/
$ox = 500;
$oy = ($ox * $iy)/$ix;
} else {/*********************縦長の場合*/
$oy = 375;
$ox = ($oy * $ix)/$iy;
}
$gdimg_out = imagecreatetruecolor($ox,$oy);
imagecopyresized($gdimg_out,$gdimg_in,0,0,0,0,$ox,$oy,$ix,$iy);
imagejpeg($gdimg_out,$file_path);
imagedestroy($gdimg_in);
imagedestroy($gdimg_out);
$img_size = getimagesize($file_path);
************************************************何か解決方法はありますか?
分かる方、是非宜しくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> ファイルはちゃんとアップロードされていました。
一つきり分けが出来ました。ソースはしっかりあると言う事ですね。
> ページを表示できません。
とでてきているのに、
> 縮小する前の処理(imagecreatefromjpeg)で
> エラーが起きてるみたいです。
と言う根拠は何でしょう?
http://php.s3.to/man/function.imagecreatefromjpe …
のPHPマニュアルにあるように空の画像を表示する方法もありますが、とりあえず
$gdimg_in = @imagecreatefromjpeg($file_path);
if (!$gdimg_in) { /* オープンに失敗した場合 */
echo "imagecreatefromjpeg で {$file_path}のオープンに失敗";
exit;
}
としてエラー表示されるか確認する事も良いかと。
あと、エラーが起きるとすれば
imagecopyresizedやimagejpegあたりですから、その辺もエラーを出力するようにしてみれば原因が究明しやすいです。
この回答への補足
またまた、有難うございます。
>>縮小する前の処理(imagecreatefromjpeg)で
>>エラーが起きてるみたいです。
>と言う根拠は何でしょう?
これは、imagecreatefromjpegの直前直後に
print "aaa";
exit;
を記述して試した際に直前だと"aaa"が表示されたんですけど、直後だと"ページを表示できません"と表示されます。
ちなみに
$gdimg_in = @imagecreatefromjpeg($file_path);
if (!$gdimg_in) { /* オープンに失敗した場合 */
echo "imagecreatefromjpeg で {$file_path}のオープンに失敗";
exit;
}
で試した際も"ページを表示できません"でした。
やはり、imagecreatefromjpegでのメモリ制限エラーなのでしょうか?
もしそうだとしたら、他に画像をリサイズする方法ってありますか?
No.1
- 回答日時:
ピント外れかもしれませんが。
。。ファイルはちゃんとアップロードされていますか?
ファイルアップロードの制限はphp.iniで
upload_max_filesize
post_max_size
で制限されています。
この回答への補足
ご返答ありがとうございます。
ファイルはちゃんとアップロードされていました。
フォルダに保存されてあり、そのファイルを縮小したいのですが、
縮小する前の処理(imagecreatefromjpeg)で
エラーが起きてるみたいです。
メモリー制限によるエラーだと、レンタルサーバーなのでmemory_limitを設定できません。
別の方法で、画像縮小する良い方法はありますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォントの色を変えるには?
-
パースエラーとは?
-
正規表現での最後尾のバックス...
-
トランザクションが原因?DBに...
-
PHPでネットワークドライブのop...
-
これは例外処理でしょうか?
-
PHPでfatal errorが出ても無視...
-
xmlの宣言文をPHPで出力するには
-
phpのrenameでエラーが出ます
-
SELECTの値を保持する
-
Cドライブにある画像を表示したい
-
PHPにて外部サイト内容が取得不...
-
phpのPDOの導入
-
PHP disconnect()でエラー
-
PHP初心者です。
-
rename関数 できない
-
ファイルをアップロードさせるには
-
IEでのPHPのエラー行の表示
-
メールアドレスが存在するか確...
-
phpのエラー(T_LNUMBER)について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォントの色を変えるには?
-
PHP8を使うと、大量のWarningが...
-
トランザクションが原因?DBに...
-
「@$変数」の「@の意味は?」
-
パースエラーとは?
-
PHPで、エラーがない場合のみ画...
-
error_reporting(0);にも関わら...
-
SELECTの値を保持する
-
PHPにて外部サイト内容が取得不...
-
PHPでネットワークドライブのop...
-
fsockopenの例外について
-
PHPでfatal errorが出ても無視...
-
PHP、unpack関数でのエラー
-
Localeクラスについて
-
iframeからのアクセスか、ブラ...
-
bindValueエラー
-
PHPでSMTPを使ってメール送信で...
-
PHPでのPASSWORD一致確認処理に...
-
ASPをPHPに移植したいですが、...
-
これは例外処理でしょうか?
おすすめ情報