ホームページ >バックエンド開発 >PHPチュートリアル >PHP 画像処理画像の背景とキャンバスの操作、_PHP チュートリアル
検証コードや動的データに基づく統計アイコンの生成など、以前に紹介した一部の GD ライブラリ操作はすべて動的に描画されるイメージです。 Web 開発では、サーバーにすでに存在する画像が処理されることがよくあります。たとえば、特定のニーズに応じて、画像の拡大縮小、透かし入れ、トリミング、反転、回転などの画像変更操作を実行できます。 Web アプリケーションでは、一般的に使用される画像形式は GIF、JPEG、PNG の 1 つ以上です。もちろん、GD ライブラリは他の形式の画像も処理できますが、それらが使用されることはほとんどありません。したがって、GD ライブラリをインストールするときは、GIF、JPEG、または PNG の 3 つの形式のうち少なくとも 1 つをインストールしてください。
先ほど紹介したキャンバス管理では、imagecreate()とimageCreateTrueColor()の2つの関数を使ってキャンバスリソースを作成します。ただし、既存の画像を処理する必要がある場合は、この画像をキャンバス リソースとして使用するだけで済みます。これを画像の背景の作成と呼びます。以下に紹介するいくつかの関数を使用して、サーバーまたはネットワーク ファイルにすでに存在する GIF、JPEG、および PNG 画像を開き、指定されたファイル名から取得した画像を表す画像識別子を操作のバックグラウンド リソースとして返すことができます。それらのプロトタイプは次のとおりです。これらはすべて空の文字列を返し、失敗するとエラー メッセージを出力します。
どの関数を使って画像リソースを作成したとしても、使用後に画像リソースを破棄するには imagedestroy() 関数を使用する必要があります。次に、画像形式の対応の問題があります。どのような方法で開いた画像リソースも同じ形式で保存できます。たとえば、imagecreatefromjpeg() 関数を使用して作成された画像リソースの場合、imagepng() 関数を使用して画像をブラウザまたは PNG 形式のファイルに出力できます。もちろん、開く形式に応じて、対応する画像形式で画像を保存するのが最善です。これを行うには、まず getimagesize() 関数を知る必要があります。画像名を通じて画像のタイプ、幅、高さを取得できます。この関数のプロトタイプは次のようになります:
filenameで指定された画像にアクセスできない場合、または有効な画像ではない場合、この関数はFALSEを返し、E_WARNINGレベルのエラーを生成します。エラーが発生しない場合、getimagesize() は 4 つのセルを含む配列を返します。インデックス 0 には画像の幅のピクセル値が含まれ、インデックス 1 には画像の高さのインデックス値が含まれます。インデックス 2 は画像タイプのタグです。1= GIF、2=JPG、3=PNG、4=SWF など。インデックス 3 は、「height="yyy" width="xxx"」という内容のテキスト文字列で、 タグに直接使用できます。 。以下に示すように:
次の例では、GIF、JPG、PNG のいずれかの形式で画像を開き、画像の中央に文字列を追加し、元の形式 (テキストの透かし) で保存できる image() 関数を宣言しています。将来の開発で、同じ操作 (どの形式の画像が開かれ、対応する形式のファイルとしても保存される) が必要な場合は、この例のモードに参加できます。コードは次のとおりです: