<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 安裝擴展 使用`Composer`安裝`ThinkPHP5`的圖像處理類庫: ~~~ composer require topthink/think-image ~~~ ## 圖像操作 下面來看下圖像操作類的基礎方法。 ### 打開圖像文件 假設當前入口文件目錄下面有一個`image.png`文件,如圖所示: ![](https://box.kancloud.cn/88e25fed9c22b2333334799f8484f952_768x432.png) 使用`open`方法打開圖像文件進行相關操作: ~~~ $image = \think\Image::open('./image.png'); ~~~ 也可以從直接獲取當前請求中的文件上傳對象,例如: ~~~ $image = \think\Image::open(request()->file('image')); ~~~ ### 獲取圖像信息 可以獲取打開圖片的信息,包括圖像大小、類型等,例如: ~~~ $image = \think\Image::open('./image.png'); // 返回圖片的寬度 $width = $image->width(); // 返回圖片的高度 $height = $image->height(); // 返回圖片的類型 $type = $image->type(); // 返回圖片的mime類型 $mime = $image->mime(); // 返回圖片的尺寸數組 0 圖片寬度 1 圖片高度 $size = $image->size(); ~~~ ### 裁剪圖片 使用`crop`和`save`方法完成裁剪圖片功能。 ~~~ $image = \think\Image::open('./image.png'); //將圖片裁剪為300x300并保存為crop.png $image->crop(300, 300)->save('./crop.png'); ~~~ 生成的圖片如圖: ![](https://box.kancloud.cn/b46e4b15f928daf684058dff7077d0af_300x300.png) 支持從某個坐標開始裁剪,例如下面從(100,30)開始裁剪,例如: ~~~ $image = \think\Image::open('./image.png'); //將圖片裁剪為300x300并保存為crop.png $image->crop(300, 300,100,30)->save('./crop.png'); ~~~ 生成的圖片如圖: ![](https://box.kancloud.cn/b46e4b15f928daf684058dff7077d0af_300x300.png) ### 生成縮略圖 使用`thumb`方法生成縮略圖,例如: ~~~ $image = \think\Image::open('./image.png'); // 按照原圖的比例生成一個最大為150*150的縮略圖并保存為thumb.png $image->thumb(150, 150)->save('./thumb.png'); ~~~ 生成的縮略圖如圖所示: [](image/5785e5409cab2.png) 我們看到實際生成的縮略圖并不是150*150,因為默認采用原圖等比例縮放的方式生成縮略圖,最大寬度是150。 可以支持其他類型的縮略圖生成,設置包括`\think\Image`的下列常量或者對應的數字: ~~~ //常量,標識縮略圖等比例縮放類型 const THUMB_SCALING = 1; //常量,標識縮略圖縮放后填充類型 const THUMB_FILLED = 2; //常量,標識縮略圖居中裁剪類型 const THUMB_CENTER = 3; //常量,標識縮略圖左上角裁剪類型 const THUMB_NORTHWEST = 4; //常量,標識縮略圖右下角裁剪類型 const THUMB_SOUTHEAST = 5; //常量,標識縮略圖固定尺寸縮放類型 const THUMB_FIXED = 6; ~~~ 比如我們居中裁剪: ~~~ $image = \think\Image::open('./image.png'); // 按照原圖的比例生成一個最大為150*150的縮略圖并保存為thumb.png $image->thumb(150,150,\think\Image::THUMB_CENTER)->save('./thumb.png'); ~~~ 后生成的縮略圖效果如圖: ![](https://box.kancloud.cn/9f0c37dc57cc38fccb00dbecca801013_150x150.png) 再比如我們右下角剪裁 ~~~ $image = \think\Image::open('./image.png'); // 按照原圖的比例生成一個最大為150*150的縮略圖并保存為thumb.png $image->thumb(150,150,\think\Image::THUMB_SOUTHEAST)->save('./thumb.png'); ~~~ 生成的縮略圖效果如圖: ![](https://box.kancloud.cn/144414432d50e94938754a8f775c69af_150x150.png) 這里就不再對其他用法一一舉例了。 ### 圖像翻轉 使用`flip`可以對圖像進行翻轉操作,默認是以x軸進行翻轉,例如: ~~~ $image = \think\Image::open('./image.png'); // 對圖像進行以x軸進行翻轉操作 $image->flip()->save('./filp_image.png'); ~~~ 生成的效果如圖: ![](https://box.kancloud.cn/2016-07-23_579366dfb73f3.png) 我們也可以改變參數,以y軸進行翻轉,例如: ~~~ $image = \think\Image::open('./image.png'); // 對圖像進行以y軸進行翻轉操作 $image->flip(\think\image::FLIP_Y)->save('./filp_image.png'); ~~~ 生成的效果如圖: ![](https://box.kancloud.cn/2016-07-23_579366e000540.png) >[info]圖像的翻轉可以理解為圖像的鏡面效果與圖像旋轉有所不同。 ### 圖像旋轉 使用`rotate`可以對圖像進行旋轉操作(默認是順時針旋轉90度),我們用默認90度進行旋轉舉例: ~~~ $image = \think\Image::open('./image.png'); // 對圖像使用默認的順時針旋轉90度操作 $image->rotate()->save('./rotate_image.png'); ~~~ 生成的效果如圖: ![](https://box.kancloud.cn/9e926b44ae235cdf8b9a635297e4a786_432x767.png) ### 圖像保存參數 `save`方法可以配置的參數 | 參數 | 默認 | 描述 | | -- | -- | -- | | pathname | 必填項 | 圖像保存路徑名稱 | | type | 默認與原圖相同 | 圖像類型 | | quality | 80 | 圖像質量 | | interlace | true | 是否對JPEG類型圖像設置隔行掃描 | >[info]設置隔行掃描的情況下在網頁進行瀏覽時。是從上到下一行一行的顯示,否則圖片整個顯示出來 然后由模糊到清晰顯示。 ### 添加水印 系統支持添加圖片及文字水印,下面依次舉例說明 添加圖片水印,我們下載官網logo文件到根目錄進行舉例: ~~~ $image = \think\Image::open('./image.png'); // 給原圖左上角添加水印并保存water_image.png $image->water('./logo.png')->save('water_image.png'); ~~~ `water`方法的第二個參數表示水印的位置,默認值是`WATER_SOUTH`,可以傳入下列`\think\Image`類的常量或者對應的數字: ~~~ //常量,標識左上角水印 const WATER_NORTHWEST = 1; //常量,標識上居中水印 const WATER_NORTH = 2; //常量,標識右上角水印 const WATER_NORTHEAST = 3; //常量,標識左居中水印 const WATER_WEST = 4; //常量,標識居中水印 const WATER_CENTER = 5; //常量,標識右居中水印 const WATER_EAST = 6; //常量,標識左下角水印 const WATER_SOUTHWEST = 7; //常量,標識下居中水印 const WATER_SOUTH = 8; //常量,標識右下角水印 const WATER_SOUTHEAST = 9; ~~~ 我們用左上角來進行測試: ~~~ $image = \think\Image::open('./image.png'); // 給原圖左上角添加水印并保存water_image.png $image->water('./logo.png',\think\Image::WATER_NORTHWEST)->save('water_image.png'); ~~~ 生成的圖片效果如下: ![](https://box.kancloud.cn/30d6a32b977c060bf6f4996053e5bca7_768x432.png) 還可以支持水印圖片的透明度(0~100,默認值是100),例如: ~~~ $image = \think\Image::open('./image.png'); // 給原圖左上角添加透明度為50的水印并保存alpha_image.png $image->water('./logo.png',\think\Image::WATER_NORTHWEST,50)->save('alpha_image.png'); ~~~ 生成的圖片效果如下: ![](https://box.kancloud.cn/67fb22eaa6b1f2c1325d498d2ecadbe9_768x432.png) 也可以支持給圖片添加文字水印(我們復制一個字體文件`HYQingKongTiJ.ttf`到入口目錄),我們現在生成一個像素20px,顏色為`#ffffff`的水印效果: ~~~ $image = \think\Image::open('./image.png'); // 給原圖左上角添加水印并保存water_image.png $image->text('十年磨一劍 - 為API開發設計的高性能框架','HYQingKongTiJ.ttf',20,'#ffffff')->save('text_image.png'); ~~~ 生成的圖片效果: ![](https://box.kancloud.cn/a38f1ee79cfbce71d6ddc50959a35c92_768x432.png) ### 文字水印參數 文字水印比較多,在此只做說明不做演示了 | 參數 | 默認 | 描述 | | -- | -- | -- | | text | 不能為空 | 添加的文字 | | font | 不能為空 | 字體文件路徑 | | size | 不能為空 | 字號,單位是像素 | | color | #00000000 | 文字顏色 | | locate | WATER_SOUTHEAST | 文字寫入位置 | | offset | 0 | 文字相對當前位置的偏移量 | | angle | 0 | 文字傾斜角度 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看