「imagecreatefromjpeg」関数を使用して、以下のような新規JPEG画像の作成をしようと試みています。
$image = imagecreatefromjpeg("xxxx.jpg");
この記述がされたphpファイルを実行すると、400KB程度の対象ファイル(xxxx.jpg)なら良いのですが、それ以上になってくると、別ウィンドウに「アクセス中のURL:http://www.xxx~の読み込みに失敗しました。」というエラーが出てしまいます。
php.ini設定でGDライブラリやらみても、特にファイル制限云々の記述はないし、どこに問題があるのか分かりません。
どなたか解決方法をご存じの方がいらっしゃいましたら、どうぞよろしくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
これだけのコードでポップアップウィンドウが出るという状況を理解してないです、すみません。
テストの用のその1行だけであれば何の出力もないハズですよね。エラーメッセージは表示されると思いますが、その場合普通にこのスクリプトを起動したブラウザ上に表示されますよね?ポップアップウィンドウというのはブラウザのサブウィンドウではなくて?一つ想像が付くのですが、読み込みはjpegでも内部ではbmpのような単純な形に展開しているのかも知れません。そうすると元のjpegファイルは小さくてもピクセルサイズが大きくなればその分メモリを食います。それらしい記述が参考URLの下のコメント欄にあります(英語ですが)。1500×1500のサイズのBMPであればだいたい8MB位メモリを食ってもおかしくないです。memory_limitの値をもっと大きくしてみたらどうでしょう?コンパイル時に--enable-memory-limitをつけないといけないような事がマニュアルに書いてありますが、リコンパイル等できる環境ですか?
試しにimagecreatefromgif()で画像のサイズを変えてやってみたらどうでしょうか?ピクセルサイズに関してimagecreatefromjpegと同じ挙動を示すのではないでしょうか?
No.2
- 回答日時:
瞬時にエラーが出ますかぁ。
そうなると普通にデバッグをしないといけませんね。スクリプトの概要を確認したいのですが、imagecreatefromjpegで画像を読み込んで、何らかの加工を行ってブラウザに表示する、という感じですか?そしてそれはその別ウィンドウに表示される、という感じでしょうか。そしてある程度の大きさ以上になると画像ではなくエラーメッセージが表示される、と。
スクリプトで画像を表示する時にありがちなのが、画像以外のデータが出力されてしまう場合です。例えばエラーメッセージやデバッグメッセージなどですね。デバッグには横取り丸等を使用するとブラウザに送られているデータが読み取れるので、どんなデータがサーバーから送られているか確認する事をお勧めします。
参考URL:http://hide.maruo.co.jp/software/ydm.html
ありがとうございます。
スクリプトですが、最終的にはおっしゃるとおりの流れを想定しているのですが、該当ファイルは一応テスト的に、
<?php
$image = imagecreatefromjpeg("xxxx.jpg");
?>
だけにしてあります。つまり、実際正常動作したとしても、テストですのでブラウザ上は何も出力していません。その状態でその対象ファイル(xxxx.jpg)がファイルによってエラーが出たり出なかったりします。
その後テストをしているのですが、実はファイル容量ではなく、ファイルの縦横ピクセルサイズが関連しているようなのです。
例えば、真っ白な画像を1500×1500ピクセルでJPEG保存すると72KB程度なのですが、エラーが出るという感じです。
エラーというのは、質問内容のとおりですが、そちらはブラウザ表示ではなく、ポップアップウィンドウでのエラー表示となります。
No.1
- 回答日時:
タイムアウトではないでしょうか?
ブラウザからPHPを実行した場合、デフォルトでは30秒でタイムアウトになります。php.iniのmax_execution_timeの値か、set_time_limit関数で最大実行時間を変更してあげないと30秒でタイムアウトになります。
また、ブラウザが一定時間サーバーからの反応がないとタイムアウト等のエラーを返す場合もあります。これはブラウザ側の設定の問題です。
ファイルの大きさによってエラーが出るようなので、このあたりが疑わしいかな、と思いました。
ありがとうございます。
早速php.iniの設定で、max_execution_timeの値を確認しましたが、デフォルトで30秒でした。
ブラウザ(MAC IE5.1)の方は残念ながら確認できず...
ただ、再度確認すると、一定時間というより速攻(1秒程度)でエラーが表示されるようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- Windows 10 JPG PNG サポートされていない形式 (JPGファイルで開ける、開けないがある場合) 4 2022/04/23 13:46
- UNIX・Linux bash のファイルの読み込み方についてご質問 3 2023/05/15 20:40
- PHP 画像ファイルの名前をそのままURLにする 3 2022/10/16 11:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
透過PNGが透過されない!!
-
VBAでJPGサイズ変更
-
VBSの「MsgBox」について
-
DBに格納された画像データを縮...
-
SQLiteに画像を格納したい
-
GD(php)での image関数 イメ...
-
C#とJavaで、MP3タグの画像を表...
-
アップロードしたGIF画像を縮小
-
ASPで画像サイズの変換はできま...
-
「imagecreatefromjpeg」について
-
iphoneで虫眼鏡の作り方
-
拡張子php画像をjpg画像等に変...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
別ファイルの変数を呼び出した...
-
PHPのif文でその処理を途中で抜...
-
CFileDialogの最初のディレクト...
-
.phpと.incファイルの違いはな...
-
「警告:ページの有効期限切れ...
-
「@$変数」の「@の意味は?」
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
透過PNGが透過されない!!
-
VBSの「MsgBox」について
-
拡張子php画像をjpg画像等に変...
-
C# Excelファイルへの画像挿入。
-
VBAでJPGサイズ変更
-
iphoneで虫眼鏡の作り方
-
SQLiteに画像を格納したい
-
PHP MySQLに画像を直接保存
-
Illustratorで文字と画像を流し...
-
openCVの超解像処理
-
ChatGPTに作らせたい Excel VBA
-
PHPで吐き出した画像にリンクを...
-
PHPによる画像の生成による色の...
-
pictureboxに表示した画像のフ...
-
GDI+を使ったビット数とDPIの扱い
-
ウィンドウサイズを取得して、p...
-
ImageTTFTextで保存すると文字...
-
ビットマップ画像を読み込むプ...
-
BLOBデーターの画像の表示方法...
-
OpenGLで描いて画像ファイル出力
おすすめ情報