• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像のリサイズについて)

画像のリサイズについて

このQ&Aのポイント
  • 画像のリサイズについて教えてください。画像の縦幅と横幅を変更して出力する方法を説明しています。画像生成の際に表示に問題が発生する原因を教えてください。
  • 画像のリサイズについての問題について教えてください。画像ファイルの縦幅と横幅を変更して出力する方法について、表示上の問題が発生することがあります。原因と解決策を教えてください。
  • 画像のリサイズに関する問題が発生しています。画像ファイルの縦幅と横幅を変更して出力する方法を説明していますが、画像の表示に問題があります。画像が表示されない原因と解決方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

原因は、思いつかないのですが、画像が表示出来なかった時のエラーを取得してみては如何でしょうか。 http://kattsuk2.blog111.fc2.com/blog-entry-38.html →エラーをファイルに出力する方法についてまとめてくださってます。 もしPHP自信がエラーを吐いているのであれば、ログファイルにエラーの詳細が出力されると思いますので、テストしてみては如何でしょうか。 また、#1の回答者さんが言っているキャッシュを残すというお話ですが、 image.php <?php $size_x = 10 //携帯電話別にサイズが振り分けられてることと思います。 $size_y = 10 //とりあえず10px x 10pxの画像を作成するとして。 $ext = "jpg" //ファイルのタイプも違ったりするのでしょうか。 $file_path = "tmp/imagename_{$size_x}_x_{$size_y}.{$ext}"; //生成するキャッシュファイル名 //もしキャッシュファイルとして、[tmp/imagename_10_x_10.jpg]が存在しなかったら if(!file_exists($file_path){ //画像の加工処理をして imagejpeg($im, $file_path); //第二引数に出力先のファイル名を記述 } header("該当のヘッダ"); echo file_get_contents($file_path); ?> といった感じで、キャッシュファイルを作成出来てたらキャッシュファイルをそのままアウトプットして そうでなかったら、キャッシュファイルを作成してから作成したキャッシュファイルをアプトプットする という処理にすれば、演算が大分少なくなると言うことだと思います。

wonder_dct
質問者

補足

hogehoge78さん、ご回答ありがとうございます。 またお返事が遅くなってしまい申し訳ございません。 キャッシュファイルの件も考えてみます。 ただ、もしキャッシュファイルを生成し その後画像ファイルが差し替えられた場合は 前のキャッシュが表示されてしまうようなこともあると いうことですよね?

その他の回答 (2)

回答No.3

質問者が挙げた参考ページでは$_GET['file']でファイル名を取得しているので、 phpファイルを利用した画像の呼び出し方法は、 <img src="image.php?file=hoge.jpg" border="0"> となるはずですが、質問者は、 <img src="image.php" border="0"> と書いています。 ただの転記ミスでしょうが確認お願いします。 また参考サイトはケータイの例ですが、PCでも画像が出たり出なかったりでしょうか。 私はPCでの開発がメインなのでその辺が気になります。

wonder_dct
質問者

補足

honoka-chaさん、ご回答ありがとうございます。 またお返事が遅くなり、申し訳ございません。 転記ミスです。申し訳ございません。 PCのみでの動作です。 携帯環境は特に考えていません。

  • hanmemomo
  • ベストアンサー率35% (205/580)
回答No.1

グラフィックを扱うPHPはそれ自体が結構重いので、 例としてブラウザが一度に開けるソケットが4個までだと仮定すると 4個がグラフィックのPHPでソケットを占有されるとそのとき他の画像が 制御できず、タイムアウトに近くなるにつれて画像に「X」がついていくという 感じではないですか? だとするなら、画像をリサイズした後、キャッシュ管理を追加して 加工した実体ではなく加工済みの実体を送り出すようにすれば 多少よくなります。 どちらにしてもあまり多くの画像変換はPHPではやるべきでは ないかもしれませんよ

wonder_dct
質問者

補足

hanmemomoさん、ご回答ありがとうございます。 全ての画像が表示されている場合もあるのですが それでもタイムアウトしていると考えた方がいいでしょうか。 既に実装済みで今からの修正は大変困難なので 何か改善方法を教えていただければと存じます。 キャッシュ管理というのは、具体的にどういった処理を行えばいいのでしょうか。 参考になるURLなど教えていただければと存じます。 よろしくお願いいたします。