PHP 画像処理: 画像の背景とキャンバスの操作、
検証コードや動的データに基づく統計アイコンの生成など、以前に紹介した一部の GD ライブラリ操作はすべて動的に描画されるイメージです。 Web 開発では、サーバーにすでに存在する画像が処理されることがよくあります。たとえば、特定のニーズに応じて、画像の拡大縮小、透かし入れ、トリミング、反転、回転などの画像変更操作を実行できます。 Web アプリケーションでは、一般的に使用される画像形式は GIF、JPEG、PNG の 1 つ以上です。もちろん、GD ライブラリは他の形式の画像も処理できますが、それらが使用されることはほとんどありません。したがって、GD ライブラリをインストールするときは、GIF、JPEG、または PNG の 3 つの形式のうち少なくとも 1 つをインストールしてください。
先ほど紹介したキャンバス管理では、imagecreate()とimageCreateTrueColor()の2つの関数を使ってキャンバスリソースを作成します。ただし、既存の画像を処理する必要がある場合は、この画像をキャンバス リソースとして使用するだけで済みます。これを画像の背景の作成と呼びます。以下に紹介するいくつかの関数を使用して、サーバーまたはネットワーク ファイルにすでに存在する GIF、JPEG、および PNG 画像を開き、指定されたファイル名から取得した画像を表す画像識別子を操作のバックグラウンド リソースとして返すことができます。それらのプロトタイプは次のとおりです。これらはすべて空の文字列を返し、失敗するとエラー メッセージを出力します。
コードをコピーします コードは次のとおりです:
resource imagecreatefromjpeg(string $filename) //JPEG ファイルまたは URL から新しい画像を作成します
resource imagecreatefrompng(string $filename) //PNG ファイルまたは URL から新しい画像を作成します
resource imagecreatefromgif(string $filename) //GIF ファイルまたは URL から新しい画像を作成します
どの関数を使って画像リソースを作成したとしても、使用後に画像リソースを破棄するには imagedestroy() 関数を使用する必要があります。次に、画像形式の対応の問題があります。どのような方法で開いた画像リソースも同じ形式で保存できます。たとえば、imagecreatefromjpeg() 関数を使用して作成された画像リソースの場合、imagepng() 関数を使用して画像をブラウザまたは PNG 形式のファイルに出力できます。もちろん、開く形式に応じて、対応する画像形式で画像を保存するのが最善です。これを行うには、まず getimagesize() 関数を知る必要があります。画像名を通じて画像のタイプ、幅、高さを取得できます。この関数のプロトタイプは次のようになります:
コードをコピーします コードは次のとおりです:
array getimagesize(string filename[,array &imageinfo]) //画像のサイズと種類を取得します
filenameで指定された画像にアクセスできない場合、または有効な画像ではない場合、この関数はFALSEを返し、E_WARNINGレベルのエラーを生成します。エラーが発生しない場合、getimagesize() は 4 つのセルを含む配列を返します。インデックス 0 には画像の幅のピクセル値が含まれ、インデックス 1 には画像の高さのインデックス値が含まれます。インデックス 2 は画像タイプのタグです。1= GIF、2=JPG、3=PNG、4=SWF など。インデックス 3 は、「height="yyy" width="xxx"」という内容のテキスト文字列で、 タグに直接使用できます。 。以下に示すように:
コードをコピーします コードは次のとおりです:
list($width,$height,$type,$attr) = getimagesize("image/brophp.jpg");
echo "
";
?>
次の例では、GIF、JPG、PNG のいずれかの形式で画像を開き、画像の中央に文字列を追加し、元の形式 (テキストの透かし) で保存できる image() 関数を宣言しています。将来の開発で、同じ操作 (どの形式の画像が開かれ、対応する形式のファイルとしても保存される) が必要な場合は、この例のモードに参加できます。コードは次のとおりです:
コードをコピーします コードは次のとおりです:
//さまざまな形式の画像の中央に文字列 (テキストの透かしでもあります) を描画します
関数画像($filename,$string){
// 画像の属性、最初の幅、2 番目の高さを取得します。タイプ 1=>gif, 2=>jpeg, 3=>png
List($width,$height,$type) = getimagesize($filename);
//加工できる画像の種類
$types = array(1=>"gif",2=>"jpeg",3=>"png",);
//画像タイプを組み合わせることで、画像フォーマットに対応したGDライブラリ関数を作成し、画像リソースを作成できます
$createfrom = "imagecreatefrom".$types[$type];
//「変数関数」を使用して対応する関数を作成し、画像リソースを作成します
$image = $createfrom($filename);
//中央揃えのフォントのX軸座標位置を設定します
$x = ($width-imagefontwidth(5)*strlen($string))/2;
//中央揃えのフォントのY軸座標位置を設定します
$y = ($height-imagefontheight(5))/2;
//フォントの色を赤に設定します
$textcolor = imagecolorallocate($image, 255, 0, 0);
//指定した文字列を画像に描画します
画像文字列($image, 5, $x, $y, $string, $textcolor);
// 画像タイプを使用して、画像関数を結合し、対応する形式で保存します
$output = "画像".$types[$type];
//変数関数を使用して、対応する形式で画像を保存します
$output($image,$filename);
Imagedestroy($image);
}
画像("brophp.gif","GIF");
Image("brophp.jpg", "JPEG");
Image("brophp.png", "PNG");
?>
http://www.bkjia.com/PHPjc/914049.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/914049.html技術記事検証コードや動的データに基づく統計アイコンの生成など、PHP 画像処理の画像の背景とキャンバス操作、および以前に紹介した一部の GD ライブラリ操作は、すべて動的に描画される画像です。そして...