PHP GD generated image Firefoxにエラーが含まれているため、イメージを表示できません
PHPを使用して画像を生成する場合(例えば、画像を保存したサーバにウォーターマークを追加する場合、以下のコードを使用する場合、またはPNGの代わりにJPEGを使用する場合)、画像はまったく生成されず、Firefoxに直接表示されますChromeで
この種のコードは、一部のサーバーで作業していたにもかかわらず、時にはあいまいな理由でいくつかのサーバーで動作する可能性があります。私の場合は、ローカルで完璧に動作しますが、インターネットサーバー上でエラー以下に生成されます。エラーが含まれているため、イメージを表示できません。
問題はいくつかの理由から来ることができます。ここにいくつかあります:
すでに出力が設定されています。
イメージ生成からの真のエラー。
間違った画像タイプが使用されます。
画像ライブラリがインストールされていません。
以前出力が既に設定されている
たとえ意図的でなくても、たとえば、このエラーを回避するために、他の以前のスクリプトに最後に空白が含まれていたことが考えられます。PHP推奨のように、PHPの終了タグでスクリプトを閉じないでください。
次に、ヘッダー関数を使用する前に、次のコードを使用して、以前に設定されたヘッダーが破棄されていることを確認します
また、ヘッダーとイメージの前に出力が生成されていないことを確認するこの関数
これは私の場合の問題を解決し、画像が正しく表示されました。
イメージ生成による真のエラー
画像生成中に実際のエラーが発生した場合は、PHPがすべての種類のエラーを表示するように設定し、対応するログを確認して、それを追跡して解決できるようにしてください。
以下のコードは、PHPがログにすべてのエラーを報告するようにします:
サーバー構成のために出力HTMLに表示されなくても、いくつかのエラーが報告されていることがわかります。
間違った画像タイプが使用されています
使用している画像タイプが正しいことを確認します。たとえば、このコードを使用してpngとjpegを区別します。
また、使用される画像生成関数に応じて、使用される出力に応じてヘッダーが正しいことを確認してください
イメージライブラリがインストールされていません
イメージライブラリがインストールされていることを確認する。これを行うには、関数phpinfo()を実行します。 PHP GDに関連するimagepng()のような関数によって使用されるグラフィックスライブラリに関する以下の値の出力を確認してください。
パッケージが見つからない場合は、PEARコマンドを使用してパッケージを追加するか、パッケージインストール用に組み込まれたWebホストを使用して、ローカルの構成に依存します。
imagejpegまたはimagepngが機能していない場合の対処
NotePad ++で、imagepng関数を呼び出すPHPファイルを開き、メニューの[エンコード]> [BOMなしのUTF-8に変換]を選択して保存します。
DreamWeaverで、[ページのプロパティ]> [タイトル/エンコード]> [Unicode署名を含める(BOM)]のチェックを外します。
PHPのimagejpegまたはimagepngが機能していない場合は、おそらくPHPファイルが部品表、部品表でエンコードされているため、画像データの前に追加情報が画像とともに送信されます。
PHPのimagejpeg関数とPHPのimagepng関数は、サーバーの応答でピクチャコードを直接送信するために使用される関数です。
PHP - imagepngが正しく動作しないPHP - imagepng関数
PHP - imagejpeg関数
よくある質問
- ブラウザにPHP GDで作成された画像を表示できないのはなぜですか?
- PHP GDの生成画像が表示されず、ブラウザにエラーが表示されない場合、以前の出力が既に送信されているなど、画像生成中の本物のエラー、間違った画像タイプ、またはGD画像ライブラリを使用しないなどのいくつかの理由が原因である可能性があります。インストールされています。以前の出力が送信されないことを確認し、真のエラーを確認し、画像タイプとヘッダーを確認し、GDライブラリのインストールを確認します。
- 開発者は、エラーのためにFirefoxで表示されないPHP GD生成画像の問題をどのように修正できますか?
- 開発者は、画像生成コードのエラーを確認し、画像データの前に正しいコンテンツタイプのヘッダーが送信されていることを確認し、PHPエラーや警告が出力されていないことを確認する必要があります。画像を出力する前にOB_CLEAN()を使用することも役立ちます。
Yoann BierlingはWeb Publishing&Digital Consulting Professionalであり、技術の専門知識と革新を通じて世界的な影響を与えています。彼は、個人や組織がデジタル時代に成功するように力を与えることに情熱を傾けており、教育コンテンツの作成を通じて、例外的な結果をもたらし、成長を促進するように駆り立てられています。