<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 圖像處理 [上一頁](# "上一頁")[下一頁](# "下一頁") 使用Think\Image類進行圖像處理功能,支持Gd庫和Imagick庫,包括對GIf圖像處理的支持。 ### 實例化類庫 ~~~ $image = new \Think\Image(); ~~~ 默認使用GD庫進行圖像操作,如果需要使用Imagick庫操作的話,需要改成: ~~~ $image = new \Think\Image(\Think\Image::IMAGE_IMAGICK); // 或者采用 $image = new \Think\Image('Imagick'); ~~~ ### 圖像操作 下面來看下基礎的圖像操作功能的使用方法。 ### 打開圖像文件 假設當前入口文件目錄下面有一個1.jpg文件,如圖所示: ![1](https://box.kancloud.cn/2015-08-20_55d56f78ce5c7.png) 使用open方法打開圖像文件進行相關操作: ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); ~~~ 也可以簡化成下面的方式: ~~~ $image = new \Think\Image(\Think\Image::IMAGE_GD,'./1.jpg'); // GD庫 // 或者 $image = new \Think\Image(\Think\Image::IMAGE_IMAGICK,'./1.jpg'); // imagick庫 ~~~ ### 獲取圖像信息 可以獲取打開圖片的信息,包括圖像大小、類型等,例如: ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); $width = $image->width(); // 返回圖片的寬度 $height = $image->height(); // 返回圖片的高度 $type = $image->type(); // 返回圖片的類型 $mime = $image->mime(); // 返回圖片的mime類型 $size = $image->size(); // 返回圖片的尺寸數組 0 圖片寬度 1 圖片高度 ~~~ ### 裁剪圖片 使用crop和save方法完成裁剪圖片功能。 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); //將圖片裁剪為400x400并保存為corp.jpg $image->crop(400, 400)->save('./crop.jpg'); ~~~ 生成的圖片如圖: ![crop](https://box.kancloud.cn/2015-08-20_55d56f78e536f.png) 支持從某個坐標開始裁剪,例如下面從(100,30)開始裁剪: ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); //將圖片裁剪為400x400并保存為corp.jpg $image->crop(400, 400,100,30)->save('./crop.jpg'); ~~~ 生成的圖片如圖: ![crop](https://box.kancloud.cn/2015-08-20_55d56f7901e86.png) ### 生成縮略圖 使用thumb方法生成縮略圖 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); // 按照原圖的比例生成一個最大為150*150的縮略圖并保存為thumb.jpg $image->thumb(150, 150)->save('./thumb.jpg'); ~~~ 生成的縮略圖如圖所示: ![thumb](https://box.kancloud.cn/2015-08-20_55d56f7910687.png) 我們看到實際生成的縮略圖并不是150*150,因為默認采用原圖等比例縮放的方式生成縮略圖,最大寬度是150。 可以支持其他類型的縮略圖生成,設置包括Think\Image的下列常量或者對應的數字: ~~~ IMAGE_THUMB_SCALE = 1 ; //等比例縮放類型 IMAGE_THUMB_FILLED = 2 ; //縮放后填充類型 IMAGE_THUMB_CENTER = 3 ; //居中裁剪類型 IMAGE_THUMB_NORTHWEST = 4 ; //左上角裁剪類型 IMAGE_THUMB_SOUTHEAST = 5 ; //右下角裁剪類型 IMAGE_THUMB_FIXED = 6 ; //固定尺寸縮放類型 ~~~ 例如: #### 居中裁剪 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); // 生成一個居中裁剪為150*150的縮略圖并保存為thumb.jpg $image->thumb(150, 150,\Think\Image::IMAGE_THUMB_CENTER)->save('./thumb.jpg'); ~~~ 居中裁剪后生成的縮略圖效果如圖: ![thumb](https://box.kancloud.cn/2015-08-20_55d56f7919020.png) #### 左上角剪裁 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); // 生成一個左上角裁剪為150*150的縮略圖并保存為thumb.jpg $image->thumb(150, 150,\Think\Image::IMAGE_THUMB_NORTHWEST)->save('./thumb.jpg'); ~~~ 左上角裁剪后生成的縮略圖效果如圖: ![thumb](https://box.kancloud.cn/2015-08-20_55d56f7920ec3.png) #### 縮放填充 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); // 生成一個縮放后填充大小150*150的縮略圖并保存為thumb.jpg $image->thumb(150, 150,\Think\Image::IMAGE_THUMB_FILLED)->save('./thumb.jpg'); ~~~ 縮放填充后生成的縮略圖效果如圖: ![thumb](https://box.kancloud.cn/2015-08-20_55d56f7929631.png) #### 固定大小 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); // 生成一個固定大小為150*150的縮略圖并保存為thumb.jpg $image->thumb(150, 150,\Think\Image::IMAGE_THUMB_FIXED)->save('./thumb.jpg'); ~~~ 采用固定大小的縮略圖可能會有所變形,生成的縮略圖效果如圖: ![thumb](https://box.kancloud.cn/2015-08-20_55d56f79308e0.png) ### 添加圖片水印 ~~~ $image = new \Think\Image(); $image->open('./1.jpg'); //將圖片裁剪為440x440并保存為corp.jpg $image->crop(440, 440)->save('./crop.jpg'); // 給裁剪后的圖片添加圖片水印(水印文件位于./logo.png),位置為右下角,保存為water.gif $image->water('./logo.png')->save("water.gif"); // 給原圖添加水印并保存為water_o.gif(需要重新打開原圖) $image->open('./1.jpg')->water('./logo.png')->save("water_o.gif"); ~~~ water方法的第二個參數表示水印的位置,可以傳入下列Think\Imag類的常量或者對應的數字: ~~~ IMAGE_WATER_NORTHWEST = 1 ; //左上角水印 IMAGE_WATER_NORTH = 2 ; //上居中水印 IMAGE_WATER_NORTHEAST = 3 ; //右上角水印 IMAGE_WATER_WEST = 4 ; //左居中水印 IMAGE_WATER_CENTER = 5 ; //居中水印 IMAGE_WATER_EAST = 6 ; //右居中水印 IMAGE_WATER_SOUTHWEST = 7 ; //左下角水印 IMAGE_WATER_SOUTH = 8 ; //下居中水印 IMAGE_WATER_SOUTHEAST = 9 ; //右下角水印 ~~~ 例如: ~~~ $image = new \Think\Image(); // 在圖片左上角添加水印(水印文件位于./logo.png) 并保存為water.jpg $image->open('./1.jpg')->water('./logo.png',\Think\Image::IMAGE_WATER_NORTHWEST)->save("water.jpg"); ~~~ 生成的圖片效果如下: ![water](https://box.kancloud.cn/2015-08-20_55d56f793aa00.png) 還可以支持水印圖片的透明度(0~100,默認值是80),例如: ~~~ $image = new \Think\Image(); // 在圖片左上角添加水印(水印文件位于./logo.png) 水印圖片的透明度為50 并保存為water.jpg $image->open('./1.jpg')->water('./logo.png',\Think\Image::IMAGE_WATER_NORTHWEST,50)->save("water.jpg"); ~~~ 生成的效果如下: ![water](https://box.kancloud.cn/2015-08-20_55d56f794fd75.png) 也可以支持給圖片添加文字水印(假設在入口文件的同級目錄下存在1.ttf字體文件),例如: ~~~ $image = new \Think\Image(); // 在圖片右下角添加水印文字 ThinkPHP 并保存為new.jpg $image->open('./1.jpg')->text('ThinkPHP','./1.ttf',20,'#000000',\Think\Image::IMAGE_WATER_SOUTHEAST)->save("new.jpg"); ~~~ 生成的圖片效果: ![new](https://box.kancloud.cn/2015-08-20_55d56f795f6b0.png) [上一頁](# "上一頁")[下一頁](# "下一頁")
                  <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>

                              哎呀哎呀视频在线观看