php 画像のスケーリングとト...LOGIN

php 画像のスケーリングとトリミングのテクノロジー

前の章では、画像の透かし技術について学びました。透かし技術は、この章で学ぶスケーリングおよびトリミング技術と基本的に同じですが、使用する関数が若干異なります。

一般的に使用される 2 つの関数は次のとおりです:

関数名関数の説明
imagecopyresampled画像のコピー部分をリサンプルし、サイズを変更します
画像コピーのサイズが変更されました画像の一部をコピーしてサイズ変更します

これら 2 つの関数を見てみましょう。これら 2 つの関数の使い方は難しくありません。ただパラメータが少し複雑です。画像のスケーリングまたはトリミングを完了するには:

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 $ソース画像の高さ)

画像の拡大縮小とトリミングの方法は同じですが、違いはコピーするときです。 、画像全体がコピーされます。画像はまだフィルムの一部です。

操作手順:
ソース画像の開始点(x,y)から開始して、画像の幅と高さを指定します。対象画像の始点(x,y)に配置し、画像の幅と高さを指定します。

1. 画像をズームします。操作をステップに簡略化します


1. ソース画像を開きます

2. ソース画像を取得し、比率に従ってサイズを調整します

4. 指定したサイズの新しい画像をターゲット画像として作成します

5. 調整したサイズのソース画像をターゲットに配置します

6. リソースを破棄します

拡大縮小しますFan Bingbing:

20161114147910942958296b354976a.png

<?php

//打开来源图片
$image = imagecreatefrompng('fbb.png');


//定义百分比,缩放到0.1大小
$percent = 0.1;


// 将图片宽高获取到
list($width, $height) = getimagesize('fbb.png');

//设置新的缩放的宽高
$new_width = $width * $percent;
$new_height = $height * $percent;

//创建新图片
$new_image = imagecreatetruecolor($new_width, $new_height);

//将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

header('content-type:image/jpeg');
imagejpeg($new_image);
?>

999.png 2. 画像をトリミングします。操作をいくつかのステップに分けます:

1. ソース画像とターゲット画像を開きます

2. のポイントをインターセプトしますソース画像を選択し、幅と高さを設定します。ターゲット画像に挿入します。 (トリミング)

3. 入力した画像を保存します

4. リソースを破棄します

下の写真の「度」という単語を切り取って、ハスキー犬の顔に貼り付けます:

Baidu のロゴ:

document_2015-09-22_56010df4559d3.pngハスキーの写真:

10.png

アイデアを整理しましょう:

度の x 軸と y 軸の開始座標は 407、154 です

x、y 座標から始まる単語「度」の幅と高さは: 80 、89

写真の中のハスキーの顔のx、y座標は: 281、71

写真の中のハスキーの顔のx、y座標は: 132、160

私たちは皆、座標と幅を知っています。関数の使用法を見てみましょう:

<?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);
 ?>

実験結果を見てみましょう:

document_2015-09-22_56011105316ee.png

次のセクション
<?php //打开来源图片 $image = imagecreatefrompng('fbb.png'); //定义百分比,缩放到0.1大小 $percent = 0.1; // 将图片宽高获取到 list($width, $height) = getimagesize('fbb.png'); //设置新的缩放的宽高 $new_width = $width * $percent; $new_height = $height * $percent; //创建新图片 $new_image = imagecreatetruecolor($new_width, $new_height); //将原图$image按照指定的宽高,复制到$new_image指定的宽高大小中 imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); header('content-type:image/jpeg'); imagejpeg($new_image); ?>
コースウェア