php 畫像のスケーリングとトリミングのテクノロジー
前の章では、畫像の透かし技術(shù)について學(xué)びました。透かし技術(shù)は、この章で學(xué)ぶスケーリングおよびトリミング技術(shù)と基本的に同じですが、使用する関數(shù)が若干異なります。
一般的に使用される 2 つの関數(shù)は次のとおりです:
関數(shù)名 | 関數(shù)の説明 |
---|---|
imagecopyresampled | 畫像のコピー部分をリサンプルし、サイズを変更します |
畫像コピーのサイズが変更されました | 畫像の一部をコピーしてサイズ変更します |
これら 2 つの関數(shù)を見てみましょう。これら 2 つの関數(shù)の使い方は難しくありません。ただパラメータが少し複雑です。畫像のスケーリングまたはトリミングを完了するには:
bool imagecopyresampled ( resource $ target image, resource $source image, int $ x Position starting from the target, int $ y Position starting from the target, int $ x Position startingソースから、int $ソースの y 位置、int $ターゲット畫像の幅、int $ターゲット畫像の高さ、int $ソース畫像の幅、int $ソース畫像の高さ)
上の畫像と下の畫像のパラメータは同じであることに注意してください。
bool imagecopyresize ( resource $ target image, resource $ source image, int $ target start x 位置, int $ target start y 位置, int $ ソース開始 x 位置, int $ ソース開始 y 位置, int $ターゲット畫像, int $ターゲット畫像の高さ, int $ソース畫像の幅, int $ソース畫像の高さ)
畫像の拡大縮小とトリミングの方法は同じですが、違いはコピーするときです。 、畫像全體がコピーされます。畫像はまだフィルムの一部です。
操作手順:
ソース畫像の開始點(diǎn)(x,y)から開始して、畫像の幅と高さを指定します。対象畫像の始點(diǎn)(x,y)に配置し、畫像の幅と高さを指定します。
1. 畫像をズームします。操作をステップに簡略化します
1. ソース畫像を開きます
2. ソース畫像を取得し、比率に従ってサイズを調(diào)整します
4. 指定したサイズの新しい畫像をターゲット畫像として作成します
5. 調(diào)整したサイズのソース畫像をターゲットに配置します
6. リソースを破棄します
拡大縮小しますFan Bingbing:
<?php //打開來源圖片 $image = imagecreatefrompng('fbb.png'); //定義百分比,縮放到0.1大小 $percent = 0.1; // 將圖片寬高獲取到 list($width, $height) = getimagesize('fbb.png'); //設(shè)置新的縮放的寬高 $new_width = $width * $percent; $new_height = $height * $percent; //創(chuàng)建新圖片 $new_image = imagecreatetruecolor($new_width, $new_height); //將原圖$image按照指定的寬高,復(fù)制到$new_image指定的寬高大小中 imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header('content-type:image/jpeg'); imagejpeg($new_image); ?>
2. 畫像をトリミングします。操作をいくつかのステップに分けます:
1. ソース畫像とターゲット畫像を開きます
2. のポイントをインターセプトしますソース畫像を選択し、幅と高さを設(shè)定します。ターゲット畫像に挿入します。 (トリミング)
3. 入力した畫像を保存します
4. リソースを破棄します
下の寫真の「度」という単語を切り取って、ハスキー犬の顔に貼り付けます:
Baidu のロゴ:
ハスキーの寫真:
アイデアを整理しましょう:
度の x 軸と y 軸の開始座標(biāo)は 407、154 です
x、y 座標(biāo)から始まる?yún)g語「度」の幅と高さは: 80 、89
寫真の中のハスキーの顔のx、y座標(biāo)は: 281、71
寫真の中のハスキーの顔のx、y座標(biāo)は: 132、160
私たちは皆、座標(biāo)と幅を知っています。関數(shù)の使用法を見てみましょう:
<?php $dst = imagecreatefrompng('hsq.png'); $src = imagecreatefrompng('du.png'); imagecopyresized($dst, $src, 281, 71, 407, 154, 132, 160, 80, 90); header('content-type:image/jpeg'); imagejpeg($dst); imagedestroy($dst); imagedestroy($src); ?>
実験結(jié)果を見てみましょう: