php 畫(huà)像のスケーリングとトリミングのテクノロジー
前の章では、畫(huà)像の透かし技術(shù)について學(xué)びました。透かし技術(shù)は、この章で學(xué)ぶスケーリングおよびトリミング技術(shù)と基本的に同じですが、使用する関數(shù)が若干異なります。
一般的に使用される 2 つの関數(shù)は次のとおりです:
関數(shù)名 | 関數(shù)の説明 |
---|---|
imagecopyresampled | 畫(huà)像のコピー部分をリサンプルし、サイズを変更します |
畫(huà)像コピーのサイズが変更されました | 畫(huà)像の一部をコピーしてサイズ変更します |
これら 2 つの関數(shù)を見(jiàn)てみましょう。これら 2 つの関數(shù)の使い方は難しくありません。ただパラメータが少し複雑です。畫(huà)像のスケーリングまたはトリミングを完了するには:
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 $ターゲット畫(huà)像の幅、int $ターゲット畫(huà)像の高さ、int $ソース畫(huà)像の幅、int $ソース畫(huà)像の高さ)
上の畫(huà)像と下の畫(huà)像のパラメータは同じであることに注意してください。
bool imagecopyresize ( resource $ target image, resource $ source image, int $ target start x 位置, int $ target start y 位置, int $ ソース開(kāi)始 x 位置, int $ ソース開(kāi)始 y 位置, int $ターゲット畫(huà)像, int $ターゲット畫(huà)像の高さ, int $ソース畫(huà)像の幅, int $ソース畫(huà)像の高さ)
畫(huà)像の拡大縮小とトリミングの方法は同じですが、違いはコピーするときです。 、畫(huà)像全體がコピーされます。畫(huà)像はまだフィルムの一部です。
操作手順:
ソース畫(huà)像の開(kāi)始點(diǎn)(x,y)から開(kāi)始して、畫(huà)像の幅と高さを指定します。対象畫(huà)像の始點(diǎn)(x,y)に配置し、畫(huà)像の幅と高さを指定します。
1. 畫(huà)像をズームします。操作をステップに簡(jiǎn)略化します
1. ソース畫(huà)像を開(kāi)きます
2. ソース畫(huà)像を取得し、比率に従ってサイズを調(diào)整します
4. 指定したサイズの新しい畫(huà)像をターゲット畫(huà)像として作成します
5. 調(diào)整したサイズのソース畫(huà)像をターゲットに配置します
6. リソースを破棄します
拡大縮小しますFan Bingbing:
<?php //打開(kāi)來(lái)源圖片 $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. 畫(huà)像をトリミングします。操作をいくつかのステップに分けます:
1. ソース畫(huà)像とターゲット畫(huà)像を開(kāi)きます
2. のポイントをインターセプトしますソース畫(huà)像を選択し、幅と高さを設(shè)定します。ターゲット畫(huà)像に挿入します。 (トリミング)
3. 入力した畫(huà)像を保存します
4. リソースを破棄します
下の寫(xiě)真の「度」という単語(yǔ)を切り取って、ハスキー犬の顔に貼り付けます:
Baidu のロゴ:
ハスキーの寫(xiě)真:
アイデアを整理しましょう:
度の x 軸と y 軸の開(kāi)始座標(biāo)は 407、154 です
x、y 座標(biāo)から始まる?yún)g語(yǔ)「度」の幅と高さは: 80 、89
寫(xiě)真の中のハスキーの顔のx、y座標(biāo)は: 281、71
寫(xiě)真の中のハスキーの顔のx、y座標(biāo)は: 132、160
私たちは皆、座標(biāo)と幅を知っています。関數(shù)の使用法を見(jiàn)てみましょう:
<?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é)果を見(jiàn)てみましょう: