目次
Glide は、指定されたパラメーターに基づいてブラウザー用の画像コンテンツを動的に生成するのに役立つ画像操作ライブラリです。達成
タイプ
関連する推奨事項:
ホームページ PHPフレームワーク ThinkPHP ThinkPHPプロジェクトに画像サイズの動的クロッピング機能を追加する方法

ThinkPHPプロジェクトに画像サイズの動的クロッピング機能を追加する方法

Apr 08, 2021 pm 04:18 PM
php thinkphp thinkphp5

次のチュートリアル コラムでは、ThinkPHP プロジェクトにおける画像サイズの動的トリミング機能を紹介します。必要とする友人の役に立てば幸いです。

ThinkPHP プロジェクトに画像サイズの動的トリミング機能を追加します

ThinkPHPプロジェクトに画像サイズの動的クロッピング機能を追加する方法

ThinkPHP の画像の動的トリミングおよびスケーリング ライブラリ

最初にプロジェクトをアタッチします。アドレス: https://github.com/top-think/think-glide

Glide は、指定されたパラメーターに基づいてブラウザー用の画像コンテンツを動的に生成するのに役立つ画像操作ライブラリです。達成

動的な画像のトリミングや透かしなどについて、このライブラリは、使いやすいパッケージ化と Glide への拡張機能を提供し、ネイティブ ライブラリの基礎となる抽象化の一部を保護することで、ThinkPHP ユーザーが ThinkPHP プロジェクト内の画像の動的なトリミング機能をより適切に追加できるようにします。 . .

インストール


次のコマンドを実行してインストールします。

$ composer require slince/think-glide
ログイン後にコピー
使い方

クイックスタート

ThinkPHPから真ん中が追加されたのでソフトウェアの 5.1.6 機能のため、

ThinkPHP 5.1.6 以降のバージョンではミドルウェア登録を使用します。

application/middleware.php# を開きます。 ## ファイル (存在しない場合は作成するだけ)、ミドルウェアを登録します:
    return [
        //...
    
        \Slince\Glide\GlideMiddleware::factory([
            'source' => __DIR__ . '/../img',
        ])
    ];
    ログイン後にコピー
  • この方法は比較的簡単でお勧めです;

    ThinkPHP 5.1.0 または5.1.6 以降:

    はミドルウェアをサポートしていないため、アクティベーション プロセスが少し複雑になります。次の方法で妥協します:

    // 在 /route/route.php 注册下面路由
    Route::get('images/:file', 'index/handleImageRequest');
    
    //在控制器 index 里创建action
    public function handleImageRequest()
    {
        $middleware = \Slince\Glide\GlideMiddleware::factory([
            'source' => App::getRootPath() . '/img',
        ]);
        
        return $middleware(app('request'), function(){
            return app('response');
        });
    }
    ログイン後にコピー
  • source

    はローカルの画像ファイル フォルダーの場所です。このディレクトリに画像

    user.jpg

    があると仮定して、ブラウザを開いて次のリンクにアクセスします:
  • http://youdomain.com/images/user.jpg?w=100&h=100
    ログイン後にコピー
    縮小した写真。

    パラメータの説明

    パラメータ名

    タイプ

    説明必須ですか?sourcestringローカル フォルダーの場所 は cachestringキャッシュ ファイルの場所。デフォルトは runtime/glide 以下です。Nostringキャッシュ時間、例 2日、キャッシュ期間中の複数のリクエストは自動的に304Nostring安全な署名NoonExceptioncallable 例外処理ハンドラーNobaseUrlstringルーティング プレフィックス (プレフィックスの場合)が一致します ミドルウェアの実行が開始されます。デフォルトは /imagesNosignKey, # を通じて検証できます。 ##
    \Slince\Glide\GlideMiddleware::factory([
        'source' => __DIR__ . '/../img',
        'signKey' => 'v-LK4WCdhcfcc%jt*VC2cj%nVpu+xQKvLUA%H86kRVk_4bgG8&CWM#k*'
    ])
    ログイン後にコピー
    です
    cacheTime
    で応答します。 signKey
    セキュリティ署名 Does ですセキュリティ署名を有効にしない この場合、ユーザーはクエリ内のパラメータを調整して画像を自分でトリミングできます。これを行うつもりがない場合は、
    この場合、ユーザーが自分でパラメータを調整した場合は無効になります; 安全な URL を生成します:

    echo app('glide.url_builder')->getUrl('user.jpg', ['w' => 100, 'h' => 100]);
    
    //你会得到如下链接:/images/user.jpg?w=100&h=100&s=af3dc18fc6bfb2afb521e587c348b904
    ログイン後にコピー

    例外処理


    ユーザーが存在しないアドレスにアクセスした場合画像を削除するか、セキュリティ検証を実行しない場合、システムは例外をスローします。デフォルトの動作を onException:

    \Slince\Glide\GlideMiddleware::factory([
        'source' => __DIR__ . '/../img',
        'signKey' => 'v-LK4WCdhcfcc%jt*VC2cj%nVpu+xQKvLUA%H86kRVk_4bgG8&CWM#k*',
        'onException' => function(\Exception $exception, $request, $server){
        
            if ($exception instanceof \League\Glide\Signatures\SignatureException) {
                $response = new Response('签名错误', 403);
            } else {
                $response = new Response(sprintf('你访问的资源 "%s" 不存在', $request->path()), 404);
            }
            
            return $response;
        }
    ])
    ログイン後にコピー

    に置き換えることができます。クロージャは

    think\Response# を返す必要があることに注意してください。 ## インスタンス;

    クイック リファレンス

    トリミングをサポートするだけでなく、グライドは他の操作もサポートします。対応するパラメーターを渡すだけです。サポートされているパラメーターを確認するには、ここを参照してください:

    http ://glide.thephpleague.com/1.0/api/quick-reference/

    関連する推奨事項:

    最新の 10 件の thinkphp ビデオ チュートリアル

    以上がThinkPHPプロジェクトに画像サイズの動的クロッピング機能を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

    PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

    CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

    Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

    CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

    ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

    CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

    CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

    CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

    Validator は、コントローラーに次の 2 行を追加することで作成できます。

    PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

    Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

    CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

    CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

    PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

    このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

    See all articles