thinkphp フレームワークに画像の回転とトリミング機能を実装する方法

WBOY
リリース: 2023-05-30 11:52:38
転載
1080 人が閲覧しました

ステップ 1: thinkphp フレームワークをインストールする
thinkphp フレームワークを独自の開発で使用したい場合は、当然、それを独自のプロジェクトにインストールする必要があります。 thinkphp のインストールは非常に簡単で、解凍した圧縮パッケージをプロジェクトのルート ディレクトリに直接移動するだけです。移動後、プロジェクト内のエントリ ファイルindex.phpを変更するだけで、thinkphpの使用を開始できます。

ステップ 2: thinkphp に画像処理クラスを導入する
thinkphp フレームワークに画像処理クラスを導入して、主にスケーリング、トリミング、トリミングなどの基本的な処理方法を含む画像を操作します。回転 。この記事では、その中でも回転クロップに焦点を当てます。

次のコードをコントローラーに追加して、画像処理クラスを導入します。

use think\Image;
ログイン後にコピー

ステップ 3: 画像の回転とトリミングの実装
回転トリミングとは、回転することです。画像 トリミングと組み合わせた操作も実装が非常に簡単です。この記事の最も難しい部分は、rotateCrop 関数のコード実装です。

/**
* 旋转并裁剪图片操作
* @param string $image 被操作图片路径
* @param int $width 裁剪宽度
* @param int $height 裁剪高度
* @param int $degree 旋转角度
* @return bool|string 处理后保存的文件路径或者false
**/
public function rotateCrop($image, $width, $height, $degree) {
    $image = Image::open($image);
    $image->rotate($degree)->crop($width, $height)->save($image);
    return $image->save() ? $image->getPathName() : false;
}
ログイン後にコピー

この関数では、画像パス、トリミング幅、トリミング高さ、回転角度の 4 つのパラメータを渡す必要があります。画像パスは必須パラメータであり、他の 3 つのパラメータはオプションのパラメータです。幅と高さのデフォルトはゼロです。つまり、トリミングは実行されません。回転角度のデフォルトも 0 で、これは回転が実行されないことを意味します。

これらの操作の中で最も重要なのは、回転とトリミングの操作です。Image::open($image) 関数は、画像オブジェクトを開き、オブジェクト内のrotate() メソッドと Crop() メソッドを呼び出して、回転とトリミングを実行します。最後に、save() メソッドは画像を保存して出力します。

ステップ 4: 効果をテストする
最後にコードをテストしましょう。次のコードをコントローラーに追加します。

$image = 'image/test.jpg';
$width = 200;
$height = 300;
$degree = 90;
$test = $this->rotateCrop($image, $width, $height, $degree);
echo &#39;<img src="&#39;.$test.&#39;" />&#39;;
ログイン後にコピー

上記のコードでは、$image はターゲット画像パス、$width と $height はテスト トリミング パラメーター、$degree はテスト回転パラメーターです (実行後)。 rotateCrop() 関数は保存された画像パスを返し、最終的にそれをページに表示します。すべてが正しいことを確認したら、ページをリロードすると、処理された写真を閲覧できるようになります

以上がthinkphp フレームワークに画像の回転とトリミング機能を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート